忽略我的表中的AUTO_INCREMENT SQL有效吗?

时间:2010-07-08 06:07:49

标签: mysql

忽略我的表中的值AUTO_INCREMENT SQL会对我当前的内容产生影响吗?

3 个答案:

答案 0 :(得分:1)

不,它不会。

15char

答案 1 :(得分:0)

没有..这不会影响任何事情.. AUTO_INCREMENT函数用于make array number..it使得所有已经自动输入的数据顺序...并且还计数从1,2,3,... n ..

答案 2 :(得分:0)

不,它不会。 AUTO_INCREMENT将保留一个计数器,以便您可以插入行而不指定该列的值。

如果忽略AUTO_INCREMENT并明确说明列的值,则计数器将更新。没有显式值的下一个插入将考虑前一个插入 - 您不会冒重复值

测试用例:

创建表格:

CREATE TABLE `counter` (
  `1` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

插入一行,但不说明值:

INSERT INTO `test`.`counter` (`1` ) VALUES (NULL);

现在会有一行,值为1。

插入另一行,而不说明值:

INSERT INTO `test`.`counter` (`1` ) VALUES (NULL);

现在会有两行,1和2。

在明确说明值时插入一行:

INSERT INTO `test`.`counter` (`1` ) VALUES ('8');

您现在将有三行,1,2,8

现在插入另一行而不说明值:

INSERT INTO `test`.`counter` (`1` ) VALUES (NULL);

新行的值不是3或4,而是正确的值9:

SELECT * FROM `counter`;

1
2
8
9