错误消息(列计数与第 1 行的值计数不匹配)[重复]

Posted

技术标签:

【中文标题】错误消息(列计数与第 1 行的值计数不匹配)[重复]【英文标题】:Error message (Column count doesn't match value count at row 1) [duplicate] 【发布时间】:2021-01-08 19:24:35 【问题描述】:

我目前正在尝试在数据库表中插入值,我创建的数据库显示如下:

recipeid - int (Primary key) NOT NULL
recipename - varchar(80)
reciperating - int
recipephoto - longtext

但是,当我尝试发出如下所示的 sql 语句时:

(insert into userRecipeInfo values('Fried rice',4,'https://i.guim.co.uk/img/media/03734ee186eba543fb3d0e35db2a90a14a5d79e3/0_173_5200_3120/master/5200.jpg?width=1200&height=900')

错误消息显示如下:

Column count doesn't match value count at row 1

我想知道是什么导致了这个错误。谢谢!

【问题讨论】:

【参考方案1】:

您的 INSERT 语句提供 3 个值,但您的表有 4 列。您需要限定目标列 - 即使您确实为所有列提供了值,也强烈建议您这样做。

insert into userRecipeInfo 
  (recipename, reciperating, recipephoto ) 
values
  ('Fried rice',4,'https://i.guim.co.uk/img/media/03734ee186eba543fb3d0e35db2a90a14a5d79e3/0_173_5200_3120/master/5200.jpg?width=1200&height=900')

【讨论】:

嗯,它声明“字段'recipeid'没有默认值” @Jtang11:那么你需要提供一个值 它声明“无法添加或更新子行:外键约束失败 (userinfo.userrecipeinfo, CONSTRAINT userrecipeinfo_ibfk_1 FOREIGN KEY (recipeid) REFERENCES accountinfo ( id))"【参考方案2】:

因为您的表有 4 列,但您只传递了 3 个值。 使用插入语句,最好指定列名:

insert into userRecipeInfo (recipename ,reciperating ,recipephoto ) 
values('Fried rice',4,'https://i.guim.co.uk/img/media/03734ee186eba543fb3d0e35db2a90a14a5d79e3/0_173_5200_3120/master/5200.jpg?width=1200&height=900)

并希望 recipeid 自动生成。

指定列名的好处:

如果您的架构在未来发生变化并且您添加了一个可为空的列,则该语句不会中断 如果重新创建数据库并且列的顺序发生变化,如果您在语句中指定了匹配的列名,则没有问题。

【讨论】:

以上是关于错误消息(列计数与第 1 行的值计数不匹配)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQL 错误列计数与第 1 行的值计数不匹配

列计数与第 1 行的值计数不匹配 VendorError:1136

Codeigniter 模型出现错误:列计数与第 2 行的值计数不匹配

错误列计数不计算第 1 行的计数 [重复]

PHP ~ 列数与第 1 行的值数不匹配

java.sql.SQLException:列计数与第 1 行的值计数不匹配,并且我的数据库的第 1 列是自动记录的