我想在我的python腳本中插入我的MySQL Workbench資料庫,但我在試圖讓它在某個值已經存在的情況下只插入一次時遇到了問題。因此,假設我正在插入名字,而名字 "Bob "已經在資料庫中,我不想在此時再次插入它。
我一直在尋找其他的資源,目前正在嘗試:
for account in accounts:
sql = ("If Not Exists(SELECT * FROM Accounts WHERE Account_Name = " str(account) " ) "
"開始"。
"INSERT into Accounts (Account_Name, Account_ID, Formatted_Name, Crawler_Name) VALUES (%s, %s, %s, %s) "/span>
"結束")
val = (account, '0'/span>, 'test', 'test')
mycursor.execute(sql, val)
mydb.commit()
其中帳戶是一些與此無關的字串。我基本上想在資料庫中插入帳戶,但只有一次,如果它再次運行并找到相同的帳戶,我不希望重新插入重復的帳戶(普通的插入陳述句會這樣做)。
我得到的錯誤是。 "mysql.connector.errors.ProgrammingError。1064 (42000): 你的SQL語法有錯誤;請查看與你的MySQL服務器版本相對應的手冊,了解在第1行'If Not Exists(SELECT * FROM Accounts WHERE Account_Name = DE - Kipling DE)Begin'附近使用的正確語法"
我很感謝你的幫助。
我很感激任何幫助! :)
uj5u.com熱心網友回復:
我認為你可以使用INSERT IGNORE,這將忽略DB將試圖抱怨重復條目的事實。請參閱這里了解更多。在該鏈接中,你可以讀到其他策略(你可能會發現這些策略更適合你的需求)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/321936.html
標籤:
