当我从PHPMyAdmin得到一条insert语句时,它看起来像这样
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])为什么会有额外的部分呢?
发布于 2013-07-13 08:37:10
“额外的部分”是定义要插入的列(按顺序)。
如果且仅当您要将值插入到每一列中时,才可以省略该部分。也就是说,如果指定的值数与表中的列数相匹配。
大号,粗体注释:
即使您在每一列中都插入一个值,仍然指定列也是一个非常好的主意。原因是,如果明天您决定需要向表中添加另一个列,则所有未指定列的现有代码都将中断。
发布于 2013-07-13 08:38:28
它允许您以任何顺序放置项目,还允许您排除自动增量字段。如果要按该顺序向每个字段中插入数据,则可以排除它。
发布于 2013-07-13 08:39:04
在第一种情况下,您可以按任何顺序插入值,而不必按照定义表模式的顺序插入。此外,您还可以选择跳过可为空的列。
在第二种情况下,您必须插入由表模式定义的值,并且不能跳过可为空的列。您必须显式地为它们提供null值。
https://stackoverflow.com/questions/17625869
复制相似问题