【发布时间】:2017-08-29 15:34:08
【问题描述】:
我使用的是 mysql 5.7.18。
我试过了:
CREATE TABLE t1 (
`UID` int(10) auto_increment,
day int(10),
PRIMARY KEY (`UID`)
) ENGINE=MyISAM AUTO_INCREMENT=0;
当我查看工作台中的表信息时,它显示 autoinc 值为 1。
奇怪的是,我设法在另外两个表中将其设置为 0!
我也试过:
alter table t1 auto_increment=0;
我在将任何数据写入表之前执行了此操作。 我有点不知所措。 有什么建议吗?
更新:
CREATE TABLE `sname`.`z` (
`Uid` INT NOT NULL DEFAULT -1,
PRIMARY KEY (`Uid`))
ENGINE = MyISAM
AUTO_INCREMENT = 0;
这将创建自动增量从 0 开始的表
我不明白为什么上面的例子没有*做我想做的事情,而下面的例子却做了。
【问题讨论】:
-
auto_increment = 0 是什么意思?
-
冒着被居高临下的风险:MySql 允许在创建表时设置自动增量字段的初始值。它还允许您更改下一个要更改的自动增量值 - 只要它大于已使用的值。如果您在创建表时未指定自动增量字段的值 - mysql 将其设置为 1。完全合理且符合您的预期。在我的情况下(我承认它有点病态)我需要它从 0 开始,所以当我导入一堆使用 0 起始索引的数据时,事情会正确排列。
-
我在创建时没有将 auto_increment 设置为 0,但是当导入数据时,值被正确插入,第一个 istance 等于 1,所以一个 ..
-
这是我所期望的行为。话虽如此,我需要插入的第一条记录的 uid 为 0,而不是一个。
-
所以尝试..在我的情况下,我有一个正确的行为,没有设置:auto_increment to 0
标签: mysql auto-increment