2014-09-11 138 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