Python 为什么insert/update不能处理唯一密钥?
我编写了一个函数来获取列表列表并插入到我的数据库表中,但是,如果有重复的键,其中一列将被更新。我做错了什么Python 为什么insert/update不能处理唯一密钥?,python,mysql,Python,Mysql,我编写了一个函数来获取列表列表并插入到我的数据库表中,但是,如果有重复的键,其中一列将被更新。我做错了什么 def insert_or_update(self, data): try: self.cursor.executemany('''insert into landing_pages (profile_id, landing_page, keyword_count, unique_key) va
def insert_or_update(self, data):
try:
self.cursor.executemany('''insert into landing_pages (profile_id, landing_page, keyword_count, unique_key)
values (%s, %s, %s, %s) on duplicate key update keyword_count =values(keyword_count)''', (data))
self.db.commit()
return self.cursor.lastrowid
except Exception as e:
self.db.rollback()
# Rollback in case there is any error
return e
finally:
self.db.close()
更新:
对不起,忘了提到一整天都在工作的实际问题。它似乎没有更新,而是再次插入数据
对于unique键,我实际上创建了一个salted散列,它来自profile\u id和landing\u page列;散列被传递到unique_key列中
我的桌子看起来像这样:
+---------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+----------------+
| id | mediumint(9) | NO | PRI | NULL | auto_increment |
| profile_id | int(11) | YES | | NULL | |
| landing_page | varchar(2083) | YES | | NULL | |
| keyword_count | int(11) | YES | | NULL | |
| unique_key | varchar(200) | YES | UNI | NULL | |
+---------------+---------------+------+-----+---------+----------------+
假设关键字_count为int,您能否在查询中更改以下内容:
update keyword_count =values(keyword_count)
到
我认为你们桌上的问题是不言自明的 你的钥匙是身份证 要插入的值是 配置文件id、登录页面、关键字计数、唯一密钥 所有这些都与您的钥匙不冲突 更新时发现存在唯一密钥:
有什么问题?你得到的错误是什么?还有,这是什么数据库?请分享更多信息:你想实现什么,这段代码如何融入其中,你有什么问题,您使用的依赖项/库是什么?请阅读以下内容:希望它能帮助您解决您的问题,以便能够帮助您。抱歉-我想我需要重新填充咖啡。该值不是1的增量,关键字计数可以是任何数字。但是,我想通过替换itAh来更新该值,上面没有显示,因为我刚刚重新创建了表,但是我有一个独一无二的_key@Adders你是否完全确定有唯一的钥匙,检查小提琴
update keyword_count = <value>