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