[英]insert or replace statement not working with sqlite3 and python
每次我通過python解釋器運行它都會寫入新的值。 例如:
name = ben
age = 10
phone = 42045042
如果我跑了10次。 我的數據庫中有10個重復項。 我知道它必須是一個簡單的解決方案,但我已經在這個工作了幾個小時,無法弄明白。
conn = sqlite3.connect('addressbook.db')
cur=conn.cursor()
conn.execute('''
CREATE TABLE IF NOT EXISTS people(name TEXT,
age TEXT, phone TEXT, fblink TEXT)''')
conn.execute("INSERT OR REPLACE INTO people values (?, ?, ?, ?)", ben.displayPerson())
cursor = conn.execute("SELECT name, age, phone, fblink from people")
for row in cursor:
print "NAME = ", row[0]
print "AGE = ", row[1]
print "PHONE = ", row[2]
print "FACEBOOK LINK = ", row[3], "\n"
cur.close()
conn.commit()
conn.close()
沒有主鍵字段。
創建主鍵字段。
例如:
conn.execute('''
CREATE TABLE IF NOT EXISTS people(name TEXT primary key,
age TEXT, phone TEXT, fblink TEXT)''')
發生UNIQUE約束違規時執行REPLACE
。 沒有主鍵(或唯一..),它不會發生。
你的表沒有主鍵,因此SQLite不知道它應該“或替換”它是什么,因為它沒有任何基礎替換。 添加主鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.