Mysql - 在表中插入只有一个自动递增列

arv*_*sim 9 mysql

假设我们有一个表只有一列,id(这是主键)

如何在不指定id的情况下在表中插入新行?

我试过这个

INSERT INTO A (`id`) VALUES (NULL)
Run Code Online (Sandbox Code Playgroud)

它不起作用

编辑:我忘了提到id,主键有auto_increment和NOT NULL属性.

编辑2:运行上述查询时的确切错误是

Column 'id' cannot be null
Run Code Online (Sandbox Code Playgroud)

小智 13

只要'id'作为自动增量启用(假设ID是一个整数),您就可以这样做:

INSERT INTO A (id) values (null)
Run Code Online (Sandbox Code Playgroud)

并且'id'每次都会继续递增.


Jon*_*ack 5

仅当您使用 auto_increment 主键 (PK) 时才有效,因为每个 PK 都必须具有唯一的非空值。

drop table if exists A;
create table A
(
id int unsigned not null auto_increment primary key
)
engine=innodb;

insert into A (id) values (null),(null);

mysql> select * from A order by id;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

  • 除非我遗漏了什么,这就是问题中描述的设置:-? (2认同)