2014-09-11 139 views
0

AUTO_INCREMENT=535究竟意味着什么?我在创建如下所示的表格时看到过这种用法,但从不知道它的用途或用途。 创建表:MySQL AUTO_INCREMENT = 535

CREATE TABLE `my_table` (
`entry_id` int(11) NOT NULL auto_increment, 
`address` varchar(512) NOT NULL, 
PRIMARY KEY(entry_id) 
) ENGINE=InnoDB AUTO_INCREMENT=535 DEFAULT CHARSET=utf8 
+1

它在535开始的,而不是默认的AUTO_INCREMENT值1 – serakfalcon 2014-09-11 06:03:32

+0

谢谢serakfalcon和sbrbot。那么这是否意味着我的第一个ebtry_id实际上是535,并且该表不允许低于该数字的任何entry_id值,因为它只会从那里增加? – 2014-09-11 06:08:14

+0

不,你可以将任何对int(11)有效的值作为entry_id(甚至是负值)。注意,如果你自定义插入一个高于当前最高auto_increment值的值,你可能会遇到问题(尽管当你重新启动mysql服务时,它会从该字段的最高值自动增加)。 – serakfalcon 2014-09-11 07:46:19

回答

1

告诉什么时候开始auto_increment计数。例如,如果您想为某些专用目的保留一些ID号。

1

自动增量字段允许自动索引表中的记录。通常作为Unique Key

与像AUTO_INCREMENT=535定义的任何表将意味着下一自动生成的密钥将从535

这开始当你从现有的数据库采取备份通常发生。但也可以在一些特殊情况下使用起始索引的较高值。

0

AUTO_INCREMENT属性可以用来生成一个唯一的标识

您可以使用一对语句:DROP TABLECREATE TABLE重置自动增量列。与TRUNCATE TABLE语句一样,这些语句将删除所有数据并将自动增量值重置为零。

没有为AUTO_INCREMENT列指定值,所以MySQL自动分配序列号。

您还可以**向列显式指定0 **以生成序列号。如果列被声明为NOT NULL,那么也可以将NULL **分配给列以生成序列号。

可以检索与LAST_INSERT_ID()最近AUTO_INCREMENT值

要开始使用除1以外的AUTO_INCREMENT值,可以设置与CREATE TABLE该值或ALTER TABLE,像这样:

mysql> ALTER TABLE tbl AUTO_INCREMENT = 100; 

自动增量间隔值由MySQL服务器变量auto_increment_increment控制并全局应用。要将其更改为与默认值1不同的数字,请在MySQL中使用以下命令:

mysql> SET @@ auto_increment_increment = [interval number];

其中[间隔编号]是您要使用的间隔值。所以,如果我们要设置的时间间隔为5,我们会发出以下命令:

mysql> SET @@auto_increment_increment = 5; 

refrence: -

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html