【发布时间】:2010-02-18 12:58:31
【问题描述】:
我使用的是 MySQL 5.0 服务器。我的要求是向具有自增主键的现有表中添加一个特殊行。
如果我们能够将此行的 id 设为 0,这对于项目的未来维护和管理将非常有用(因为它易于记忆且易于在人工观察中发现)。
现在,我知道 MySQL 对您将自己的值用于自动增量列没有任何问题,并且我的测试表明,我可以使用 UPDATE 查询将行的自动增量主键设置为 0。但是,有人担心这会如何影响未来 INSERT 中列的自动增量功能。
我的(有限的)实验没有显示任何奇怪的东西,我在 MySQL 文档中找不到任何针对此的具体警告。也就是说,除此之外(强调我的):http://dev.mysql.com/doc/refman/5.0/en/create-table.html
每个表只能有一个 AUTO_INCREMENT 列,它必须被索引,并且不能有 DEFAULT 值。 AUTO_INCREMENT 列只有在它只包含正值时才能正常工作。插入一个负数被认为是插入一个非常大的正数。 这样做是为了避免数字从正数“环绕”到负数时出现精度问题,并确保您不会意外获得包含 0 的 AUTO_INCREMENT 列。
我无法解释在 AUTO_INCREMENT 列中具有零值有什么问题,所以谁能告诉我,如果 AUTO_INCREMENT 列包含 0 是一件坏事?
【问题讨论】:
标签: mysql auto-increment