【问题标题】:I need to create a MyIsam table that has an iniital autoincrement value of 0我需要创建一个初始自动增量值为 0 的 MyIsam 表
【发布时间】: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


【解决方案1】:

经过更多研究,您似乎不能将 0 作为自动增量字段中的初始值。

【讨论】:

    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多