tablo oluştururken UNIQUE
anahtar kelimeyi kullanın ve kayıt "yeni" (benzersiz) yalnızca eklemek için INSERT OR INGORE
kullanın:
cursor.execute('INSERT INTO foo (bar,baz) VALUES (?, ?)',(1,2))
: Burada
connection=sqlite3.connect(':memory:')
cursor=connection.cursor()
cursor.execute('CREATE TABLE foo (bar INTEGER UNIQUE, baz INTEGER)')
kez satır ekleyin
tekrar satır ekleyin çalışılıyor başarısız:
try:
cursor.execute('INSERT INTO foo (bar,baz) VALUES (?, ?)',(1,2))
except sqlite3.IntegrityError as err:
print(err)
# sqlite3.IntegrityError: column bar is not unique
INSERT OR IGNORE
ekler o UNIQUE
kısıt geçirilir yalnızca rekor:
cursor.execute('INSERT OR IGNORE INTO foo (bar,baz) VALUES (?, ?)',(1,3))
cursor.execute('SELECT * from foo')
data=cursor.fetchall()
print(data)
# [(1, 2)]
İşte
- hakkındaki bilgilere bağlantılar vardır kullanın
cursor.execute('''
CREATE TABLE foo (bar INTEGER, baz INTEGER, bing INTEGER, UNIQUE (bar, baz))''')
gibi bir şey birden çok alanda bir UNIQUE
dizin oluşturmak için INSERT OR IGNORE
- UNIQUE constraints