簡體   English   中英

mysql在python和mysql命令行中均插入錯誤

[英]mysql insert error both in python and mysql command line

我想將一些項目插入mysql db。

當我在python腳本中執行此操作時,我得到了:

錯誤1062:鍵“ product_code”的條目“ 222”重復。 product_code是一個唯一字段。

當我在mysql命令行中執行此操作時,我得到了:

錯誤1205(HY000):鎖定等待超時超出; 嘗試重新啟動事務。

MySQL安裝在win32上; 該表的引擎是innodb。

碼:

conn = mdb.connect(user = 'root', passwd = '[REMOVED]', db = 'vancl')
cur = conn.cursor()

sql2 = "insert into vancl.vancl_query1(product_code) values('100000')"
print sql2
cur.execute(sql2)

cur.close()

這意味着product_code列具有唯一的索引約束。 唯一索引約束告訴MySQL一個字段不能有重復的值,即每個字段必須是唯一的 當列中已經存在值222時,嘗試將值222插入到product_code中,您將得到一個“重復條目”錯誤。

現在,我重新創建一個與上一個相同的表。 在腳本中,未報告任何錯誤,但實際上未插入任何數據。 在命令行中,插入sql效果很好。

如果使用像InnoDB這樣的事務引擎,則不會保存數據,因為MySqlDb默認為自動提交。 要將數據實際保存到數據庫,您必須調用commit

conn = mdb.connect(user = 'root', passwd = '[REMOVED]', db = 'vancl')
cur = conn.cursor()

sql2 = "insert into vancl.vancl_query1(product_code) values('100000')"
print sql2

cur.execute(sql2)

//Commit the data
conn.commit() 

cur.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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