我有一个列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 ...最大?
答案 0 :(得分:1)
(你还标记了mysql)
对于 sql-server :您可以使用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)