You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL插入或更新数据时出现1136列数不匹配错误求助

解决MySQL插入/更新时的列数不匹配错误

错误翻译

报错MySQLdb.OperationalError: (1136, "Column count doesn't match value count at row 1")对应中文:

MySQLdb.操作错误:(1136, "第1行的列数与值数不匹配")

问题原因

两处语法错误导致了这个报错:

  • VALUES子句中的占位符%s之间缺少逗号分隔,MySQL会将三个%s识别为单个值,和定义的3列形成数量不匹配。
  • INSERT INTO TABLE里的TABLE是MySQL的保留关键字,不能直接作为表名使用,需要替换成你的实际表名(比如users)。

修正后的代码

values = (firstname, lastname, age)

# 将`your_table_name`替换为你的实际表名
cursor.execute('''
INSERT INTO `your_table_name` (`FirstName`, `LastName`, `Age`) 
VALUES (%s, %s, %s) 
ON DUPLICATE KEY UPDATE 
    FirstName=VALUES(FirstName), 
    LastName=VALUES(LastName), 
    Age=VALUES(Age)
''', values)

关键注意事项

ON DUPLICATE KEY UPDATE语法生效的前提是:你的表必须存在唯一索引或主键。比如可以给FirstName和LastName创建组合唯一键,或者给某列设置主键,这样MySQL才能判断"该行已存在"并执行更新操作,否则只会插入新行。

内容的提问来源于stack exchange,提问作者Ritik Ywu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:50:19