簡體   English   中英

插入或替換不與sqlite3和python一起使用的語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM