如何设置Mysql中AUTO_INCREMENT的字段为0。
Posted by quentin 在 Thursday, 14 July 2011
问题:
假设有这样的一个表:
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
如何这个表的AUTO_INCREMENT字段值设置为0呢?
尝试使用:INSERT INTO `test` (id, name) VALUES (0, 'Name 0'); 执行下来结果是id自动为1了。
所以如果需要上面的语句有效的执行,需要在执行sql语句前先执行:
SET sql_mode='NO_AUTO_VALUE_ON_ZERO';
然后再执行:
INSERT INTO `test` (id, name) VALUES (0, 'Name 0');
分析:
一般情况下,自增长的字段(AUTO_INCREMENT)在遇到NULL 或者 0 的时候,会产生一个自动的增长的值。
但是,如果设置NO_AUTO_VALUE_ON_ZERO模式之后,就禁止遇到0自增长了。所以,这种模式一般用于需要将0写入自增长字段的情况(官方不推荐存储0)。
博客分类:
添加新评论