我使用Python(2.7)并使用MySQLdb目录来控制我的SQL数据库(MySQL workbench 6)
我有一个脚本每十分钟更新一次sql表。该脚本首先删除表中的所有内容,然后再次插入所有行(使用更新的数据)。 这是我的代码草图:
db=MySQLdb.Connect("localhost", "admin", "admin")
cursor = db.cursor()
cursor.execute("use my_scheme")
cursor.execute("delete from my_table")
for item in updated_item_list:
cursor.execute("insert into my_table values (%s, %s, %s)", (item[0], item[1], item[2]))
db.commit()
cursor.fetchall()
现在,出于某种原因,我有时会遇到奇怪的行为:脚本开始更新表格,而某些行实际上正在插入,但它会在中间停止:
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry for key 'PRIMARY'")
每次都会选择不同的密钥作为重复密钥。怎么会这样?之前已删除所有条目。有什么想法吗?
非常感谢!
答案 0 :(得分:1)
您似乎将常量插入数据库,而不是实际值。请尝试此操作。
cursor.execute("INSERT INTO my_table values " +
"(val1, val2, val3) VALUES (%s, %s, %s, %s)",
(val1, val2, val3))