【发布时间】:2013-10-04 10:41:51
【问题描述】:
我对 MySQL 5.5 INSERT ... ON DUPLICATE KEY UPDATE 行在正常 Django 项目中影响不匹配 cursor.rowcount 有问题
根据doc:
对于 INSERT ... ON DUPLICATE KEY UPDATE 语句,如果将行作为新行插入,则每行的受影响行值为 1,如果更新现有行,则为 2,如果将现有行设置为,则为 0它的当前值。 如果您指定 CLIENT_FOUND_ROWS 标志,如果现有行设置为其当前值,则受影响的行值为 1(而不是 0)。
于是我试了进去,好像在mysql shell中,重复INSERT ... ON DUPLICATE KEY UPDATE语句会显示
查询正常,0 行受影响(0.00 秒)
在mysql-python中(导入MySQLdb),
cursor.rowcount 将始终为 1,无论插入/更新/没有更新
我到处搜索,找不到更改 Django 中 CLIENT_FOUND_ROWS 标志的方法。有人知道怎么做吗?
【问题讨论】:
标签: python mysql sql django mysql-python