Sql 错误消息(列计数与第1行的值计数不匹配)

Sql 错误消息(列计数与第1行的值计数不匹配),sql,sql-insert,Sql,Sql Insert,我目前正在尝试在数据库表中插入值,我创建的数据库如下所示: recipeid - int (Primary key) NOT NULL recipename - varchar(80) reciperating - int recipephoto - longtext 但是,当我尝试发出如下所示的sql语句时: (插入userRecipeInfo值('Fried rice',4,'https://i.guim.co.uk/img/media/03734ee186eba543fb3d0e35db

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

recipeid - int (Primary key) NOT NULL
recipename - varchar(80)
reciperating - int
recipephoto - longtext
但是,当我尝试发出如下所示的sql语句时:

(插入userRecipeInfo值('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

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

您的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')

因为您的表有4列,但只传递3个值。 对于insert语句,最好始终指定列名:

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自动生成

指定列名的优点是:

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)
  • 如果您的模式在将来发生更改,并且您添加了一个可为null的列,那么该语句将不会中断
  • 如果重新创建了数据库并且列的顺序发生了更改,那么如果在语句中指定了匹配的列名,则没有问题

Hmm,它表示“字段'recipeid'没有默认值”@Jtang11:那么您需要提供一个值它表示“无法添加或更新子行:外键约束失败(
userinfo
userrecipeinfo
,约束
userrecipeinfo\u ibfk\u 1
外键(
recipeid
)参考资料
accountinfo
id
)”