【发布时间】:2018-10-08 15:23:37
【问题描述】:
我在Mysql中新建了一个表,添加了一些行,但是show tables的Auto_increment字段仍然返回NULL。
mysql 手册说:这个字段应该返回:“下一个 Auto_increment 值”
https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html
我做错了什么?
如何正确找到下一个 auto_increment 值?
重现步骤:
create table `test` (
`id` int(5) not null auto_increment,
`name` varchar(256),
PRIMARY KEY(`id`)
);
然后我运行:
show table status where name like 'test';
结果:
Name, Engine, Version, ..., Auto_increment, ...
'test', 'InnoDB', '10', ..., NULL, ...
然后我运行:
insert into test values(null,'name1');
insert into test values(null,'name2');
insert into test values(null,'name3');
编辑:-其他插入语法-
insert into test (name) values('name4');
insert into test (name) values('name5');
insert into test (name) values('name6');
获取表的状态
show table status where name like 'test';
结果
Name, Engine, Version, ..., Auto_increment, ...
'test', 'InnoDB', '10', ..., NULL, ...
表格中的数据
select * from test;
结果:
1 name1
2 name2
3 name3
供您参考:
SHOW VARIABLES LIKE "%version%";
结果:
'innodb_version', '8.0.12'
'protocol_version', '10'
'slave_type_conversions', ''
'tls_version', 'TLSv1,TLSv1.1,TLSv1.2'
'version', '8.0.12'
'version_comment', 'MySQL Community Server - GPL'
'version_compile_machine', 'x86_64'
'version_compile_os', 'Win64'
'version_compile_zlib', '1.2.11'
编辑: 自动提交:
SHOW VARIABLES LIKE "autocommit";
结果:
'autocommit', 'ON'
编辑:
一段时间后它会自动开始工作。没有明确的理由如何让它开始工作。
【问题讨论】:
-
这可能是一个错误..
-
你设置了 id 为
null不知道为什么还有值 -
使用带有列名的更多 ANSI SQL 插入也会“损坏”db-fiddle.com/f/k32zMPXKk4pJj6KGg1Zo2j/0 .. 它适用于 MySQL 5.7 db-fiddle.com/f/k32zMPXKk4pJj6KGg1Zo2j/1 所以我认为这是 MySQL 8.0 错误
-
@JDC: 自动提交变量是否在你的 mysql 中设置。
-
@Suresh 显示变量,如“自动提交”; --> '自动提交','开启'