Pad*_*lin 5 mysql auto-increment
我正在使用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列中值为零的错误解释,所以有人可以告诉我,如果包含0的AUTO_INCREMENT列是坏事吗?
正如您已经发现的,不可能使用 INSERT 将 0 分配给自动增量字段,您需要使用 UPDATE。AFAIK 连续出现 0 没有什么问题,除非您尝试转储和导入。但是可以通过首先插入数据然后将其标记为自动增量字段来避免这种情况。
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |