错误消息(列计数与第 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 行的值计数不匹配)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
列计数与第 1 行的值计数不匹配 VendorError:1136