我使用 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'")
每次,不同的 key 都会被选为重复。怎么会这样?之前所有的条目都被删除了。有什么想法吗?
非常感谢!
最佳答案
您似乎将常量插入数据库,而不是实际值。试试这个。
cursor.execute("INSERT INTO my_table values " +
"(val1, val2, val3) VALUES (%s, %s, %s, %s)",
(val1, val2, val3))
关于python - 即使表是空的,mySQL 也会提示重复的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24059084/