1.auto increment字段
描述:我們通常希望在每次插入新記錄的時候,自動地創建主鍵字段的值。我們可以在表中創建一個auto-increment字段。
1)、MySQL的語法:
create table persons
(
id int not null auto_increment,
name varchar(255) not null,
primary key(id)
)
註釋:MySQL使用auto_increment關鍵字來執行auto-increment任務。默認地,auto_increment的開始值是1,每條新記錄遞增1.
要讓auto_increment序列以及其他的值起始,請使用下面的語句:
alter table persons auto_increment=100
2)、SQL Server的語法
create table persons
(
in int primary key identity,
name varchar(255)
)
註釋:SQL Server使用identity關鍵字來執行auto-increment任務。默認的,identity的開始值是1,每條記錄遞增1.
要讓表中的id以20起且遞增2,請把identity改爲identity(20,2) 如:
create table persons
(
in int primary key identity(20,2),
name varchar(255)
)
3)、Access的語法
create table persons
(
id int primary key autoincrement,
name varchar(255)
)
註釋:MS Access使用autoincrement 關鍵字來執行auto-increment任務。默認地,autoincrement的開始值是1,每條新記錄遞增1.
要讓表中的id以20起且遞增2,請把autoincrement改爲autoincrement(20,2) 如:
create table persons
(
id int primary key autoincrement(20,2),
name varchar(255)
)
4)、Oracle語法
在Oracle 中,代碼稍微複雜一點。
你必須通過sequence對創建auto-increment字段(該對象生成數字序列)。
使用下面的create sequence 語法
create sequence seq_person
minvalue 1
start with 1
increment by 1
cache 10
上面的代碼創建名爲seq_person的序列對象,它以1起始且以1遞增。改對象緩存10個值以提高性能。cache選項規定了爲訪問速度要存儲多少個序列值。
在表“persons”中插入新記錄,我們必須使用nextval函數(該函數從seq_person序列中取回下一個值):
insert into persons (id,name) values (seq_person.nextval,'lars')