0
我想INSERT or REPLACE INTO t1
如果name
已經存在。我知道如果設置了ID,則替換會起作用,但我需要它對名稱做出反應。SQLite:INSERT或REPLACE w/null PRIMARY KEY
import sqlite3
def insert(name):
cur.execute('INSERT OR REPLACE INTO t1(name) VALUES(?)', [name])
def select():
return cur.execute('SELECT * FROM t1').fetchall()
conn = sqlite3.connect('test')
cur = conn.cursor()
cur.execute('DROP TABLE IF EXISTS t1')
cur.execute('''CREATE TABLE IF NOT EXISTS t1(
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
)''')
insert('jack')
insert('jack')
insert('jack')
print select()
輸出
[(1, u'jack'), (2, u'jack'), (3, u'jack')]
好的,謝謝你的解釋。 「ROWID」將會是一個很大的幫助。 – Crispy