python - 即使表是空的,mySQL 也会提示重复的键

标签 python mysql sql

我使用 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/

相关文章:

python - 控制 dask 中的核心/线程数量

javascript - 尝试从选择选项将数据拉入表中

MySQL Group By 计数为零

sql - oracle中<number>d或<number>f是什么意思?

sql - 将行转置为列并连接表

python - 如何使用 BeautifulSoup4 从 Python 网站获取经常更新的 .php 文本?

python 使用字典函数计算字符串中的重复字符

mysql - 左连接计数等于 3 的 SQL 更新

python - 如何在运行时配置 Clojure 库?

php - 拉拉维尔 : Querying and accessing child objects in nested relationship with where clauses Many to Many relationship