Mysql——在表中仅插入一个自动递增列
假设表A只有一列id(主键) 如何在不指定id的情况下向表中插入新行 我试过这个Mysql——在表中仅插入一个自动递增列,mysql,Mysql,假设表A只有一列id(主键) 如何在不指定id的情况下向表中插入新行 我试过这个 INSERT INTO A (`id`) VALUES (NULL) 但它不起作用 编辑:我忘了提到该id,主键具有自动递增和非空属性 编辑2:运行上述查询时的确切错误为 Column 'id' cannot be null 不带```试试看。。 例如: 插入一个(sid)值(NULL)//我用了sid而不是id 对我来说很好 另外,在创建表A时,请指定唯一(sid)。。。 i、 e 创建表A(sid int(
INSERT INTO A (`id`) VALUES (NULL)
但它不起作用
编辑:我忘了提到该id,主键具有自动递增和非空属性
编辑2:运行上述查询时的确切错误为
Column 'id' cannot be null
不带```试试看。。
例如:
插入一个(sid)值(NULL)//我用了sid而不是id
对我来说很好
另外,在创建表A时,请指定唯一(sid)。。。
i、 e
创建表A(sid int(3)非空自动增量唯一(sid)) 仅在使用自动递增主键(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)
只要“id”作为自动增量启用(假设id是整数),您就可以执行以下操作:
INSERT INTO A (id) values (null)
“id”每次都会递增。我遇到了类似的问题,然后我注意到当我将
id
更改为主键+非空+自动递增时,没有应用更改
INSERT INTO `table` () VALUES ();
也在工作。为什么不跟我们分享一下它到底是如何失败的呢?PK字段不允许重复值,也不允许空值。大多数密钥字段不能为空。@arvinsim-您对设置的描述看起来是正确的。你可能没有完成你声称已经完成的一些步骤。你能发布你的表定义吗?请:)是的,它是一个自动递增字段,除非我遗漏了什么,这就是问题中描述的设置:-?引用样式不应该改变任何东西我认为这不起作用。我试过了,它试着插入数字0。因为我尝试插入了5次,所以产生了重复的输入错误。@arvinsim:您的设置一定有问题。MySQL接受
NULL
和0
作为自动增量列的值,并将它们解释为“使用下一个ID”。这对我使用MySQL数据库很有效。事实上,它每次都会增加id。问题是要得到那个数字,唉!!