2017-02-27 122 views
0

我有一個表列set_id有序列號,我打算在表中添加更多的記錄。現在我該怎麼做數字序列的自動增量?鍵列自動增量

示例:我現在最大爲37,所以當我添加一條新記錄時,我希望它從38開始等等,我該如何爲它編寫SQL查詢?

insert into abc.data (set_id, set_cd, set_desc, type_cd, mgt_cd, mgt_desc, itm_cd, upd_dt, upd_by) 
values (38, 111, other, S, total, totalwww, 0000434, 27-feb-17, kiran) 

等..

我怎樣才能增加至39 ...最大?

+1

我刪除了不兼容的數據庫標籤。請標記您真正使用的數據庫。 –

+0

您是否正在尋找自動增量列(SQL Server:'identity(1,1)'MySQL'AUTO_INCREMENT')的語法還是'identity insert' –

+0

Oracle SQl服務器 – kiran

回答

1

(你也標記了MySQL的)

對於SQL服務器:您可以使用set identity_insert ...

set identity_insert abc.data on; 

insert into abc.data 
    (set_id,set_cd,set_desc,type_cd,mgt_cd,mgt_desc,itm_cd,upd_dt,upd_by) 
values (38,111,other,S,total,totalwww,0000434,27-feb-17,kiran) 

set identity_insert abc.data off; 

或者只是沒有插入該列,讓identity處理:

insert into abc.data 
    (set_cd,set_desc,type_cd,mgt_cd,mgt_desc,itm_cd,upd_dt,upd_by) 
values (111,other,S,total,totalwww,0000434,27-feb-17,kiran) 

如果您使用的是sequence那麼你可以使用next value for dbo.sequencename

insert into abc.data 
    (set_id,set_cd,set_desc,type_cd,mgt_cd,mgt_desc,itm_cd,upd_dt,upd_by) 
values (next value for dbo.mysequence,111,other,S,total,totalwww,0000434,27-feb-17,kiran)