如何使用AUTO_INCREMENT列将新行插入数据库而不指定列名?

时间:2010-08-16 13:34:43

标签: sql mysql insert auto-increment

我有一个包含以下列的表:

  • id - INT未签名 AUTO_INCREMENT
  • name - VARCHAR(20)
  • group - VARCHAR(20)

我知道我可以像这样添加一行:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group')

我想知道是否有办法添加行而不指定列名,比如没有AUTO_INCREMENT列时?

3 个答案:

答案 0 :(得分:25)

对于某些数据库,您只需将NULL明确插入auto_increment列:

INSERT INTO table_name VALUES (NULL, 'my name', 'my group')

答案 1 :(得分:8)

更好的是,使用DEFAULT而不是NULL。您希望存储默认值,而不是可能触发默认值的NULL。

但是你最好为所有列命名,使用一段SQL可以创建所需的所有INSERT,UPDATE和DELETE。只需检查information_schema并构建所需的查询即可。没有必要手动完成,SQL可以帮助你。

答案 2 :(得分:1)

只需添加列名称,是的,您可以使用Null,但是在任何插入中都不使用列名是一个非常糟糕的主意。