alter table table_name auto_increment=n;
注意n只能大於已有的auto_increment的整數值,小於的值無效.
show table status like 'table_name' 可以看到auto_increment這一列是表現有的值.
步進值沒法改變.只能通過下面提到last_inset_id()函式變通使用
mysql可以使用auto_increment來設定主鍵的值為自增長的,其預設值是1,如果想把它的初始值設定為1000,比較笨的辦法是先插入一條記錄並指定主鍵的值為999,然後delete改行記錄,例如:
**如下
複製**
insert into test(pk) values(999);
delete from test where pk = 999;
更好的方法是使用alter的方法來直接修改,例如:
**如下
複製**
alter table test auto_increment = 1000;
例子
1、不控制主鍵的起點
**如下
複製**
create table emb_t_dictbustype
(emb_c_bustypeid int not null auto_increment,
emb_c_bustypeenname varchar(255) not null,
emb_c_bustypezhname varchar(255) not null,
primary key(emb_c_bustypeid)
)engine=innodb default charset=gbk;
2、控制主鍵的起點
**如下
複製**
create table emb_t_dictbustype
(emb_c_bustypeid int not null auto_increment,
emb_c_bustypeenname varchar(255) not null,
emb_c_bustypezhname varchar(255) not null,
primary key(emb_c_bustypeid)
)engine=innodb auto_increment=1001 default charset=gbk;
自增主鍵歸零
方法一:
如果曾經的資料都不需要的話,可以直接清空所有資料,並將自增欄位恢復從1開始計數
truncate table 表名
方法二:
dbcc checkident (』table_name』, reseed, new_reseed_value) 當前值設定為 new_reseed_value。如果自建立表後沒有將行插入該錶,則在執行 dbcc checkident 後插入的第一行將使用 new_reseed_value 作為標識。否則,下乙個插入的行將使用 new_reseed_value + 1。如果 new_reseed_value 的值小於標識列中的最大值,以後引用該錶時將產生 2627 號錯誤資訊。 www.111cn.net
方法二不會清空已有資料,操作比較靈活,不僅可以將自增值歸零,也適用於刪除大量連續行後,重新設定自增值並插入新的資料;或從新的值開始,當然不能和已有的衝突。
**如下
複製**
$sql="delete from $table_vote";
mysql_query($sql, $link);
$sql="alter table $table_vote auto_increment=1";
mysql_query($sql, $link);
獲取自增主鍵【4種方法】
通過jdbc2.0提供的insertrow()方式
通過jdbc3.0提供的getgeneratedkeys()方式
通過sql select last_insert_id()函式
通過sql @@identity 變數
1. 通過jdbc2.0提供的insertrow()方式
自jdbc2.0以來,可以通過下面的方式執行。
**如下
複製**
statement stmt = null;
resultset rs = null;
try finally
2. 通過jdbc3.0提供的getgeneratedkeys()方式
**如下
複製**
statement stmt = null;
resultset rs = null;
try else
rs.close();
rs = null;
system.out.println("key returned from getgeneratedkeys():"
+ autoinckeyfromapi);
} finally
使用auto_increment時,應注意以下幾點:
auto_increment是資料列的一種屬性,只適用於整數型別資料列。
設定auto_increment屬性的資料列應該是乙個正數序列,所以應該把該資料列宣告為unsigned,這樣序列的編號個可增加一倍。
auto_increment資料列必須有唯一索引,以避免序號重複。
auto_increment資料列必須具備not null屬性。
auto_increment資料列序號的最大值受該列的資料型別約束,如tinyint資料列的最大編號是127,如加上unsigned,則最大為255。一旦達到上限,auto_increment就會失效。
mysql設定主鍵自增長和自增長初始值
本文主要向大家介紹mysql資料庫之mysql建立表實現主鍵自增並且初始值為200,希望對大家學習mysql資料庫有所幫助。假設已經建立表test,並且主鍵為id。mysql可以使用auto increment來設定主鍵的值為自增長的,其預設值是1。alter table test change i...
mysql 主鍵自增長
mysql 資料庫表主鍵自增長的sql語句 1 不控制主鍵的起點 create table emb t dictbustype emb c bustypeid int not null auto increment,emb c bustypeenname varchar 255 not null,e...
mysql復合主鍵如何設定自增長屬性
這個可以有,需注意把自增長列放在復合主鍵的第乙個位置,也就是最左邊。比如 create table t a int auto increment,b int,key a,b 這個問題分兩種情況討論。1 myisam引擎.復合索引可以包含乙個auto increment,而且這個auto increm...