当我从PHPMyAdmin获取插入语句时,它看起来像这样
INSERT INTO `users`(`user_id`, `user_name`, `user_passwd`) VALUES ([value-1],[value-2],[value-3])
但这不会起作用:
INSERT INTO `users` VALUES ([value-1],[value-2],[value-3])
为什么额外部分会这样做?
答案 0 :(得分:3)
'额外部分'是定义要插入的列(按顺序)。
如果您要将值插入每个列,则可以省略该部分。也就是说,如果指定的值的数量与表中的列数匹配。
大而大胆的说明
即使您在每列中插入一个值,仍然指定列是一个非常好的主意。原因是,如果明天您决定需要在表中添加另一列,那么您未指定列的所有现有代码都将中断。
答案 1 :(得分:1)
它允许您以任何顺序放置项目,它还允许您排除自动增量字段。如果要按顺序向每个字段插入数据,则可以将其排除。
答案 2 :(得分:1)
在第一种情况下,您可以按任何顺序插入值,而不一定是您定义表格架构的顺序。您也可以选择跳过可以为空的列。
在第二种情况下,您必须插入由表模式定义的值,并且不能跳过可为空的列。您必须为它们明确提供null
值。
答案 3 :(得分:0)
使用第一种方法,您可以定义自己的列顺序以插入值。如果不进行规范(如第二个示例),则必须按照与表项目
相同的顺序插入值答案 4 :(得分:0)
仅当您按照与表中显示的顺序相同的顺序指定值时,它才有效。如果要以其他顺序指定值或仅将值插入表中的几个列,则必须使用完整版本。