Sql 键列自动递增

Sql 键列自动递增,sql,oracle,Sql,Oracle,我有一个带有列set\u 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, tota

我有一个带有列
set\u 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。。。max?

(您还标记了mysql)

对于sql server:您可以使用


或者不插入该列,让
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)

如果您使用的是
序列
,则可以使用:


我删除了不兼容的数据库标记。请用您真正使用的数据库进行标记。不清楚您是在寻找自动递增列的语法(SQL Server:
identity(1,1)
MySQL
auto\u increment
)还是在寻找
identity insert
Oracle SQL Server不要认为“序列号”是没有间隙的连续整数。首先,这并没有什么好处。另一方面,当您需要从表中删除一行时,您打算如何保持这一点?是否要更新所有剩余的行(或几乎所有的行)?当多个用户同时插入、删除或更新表中的行时,这将如何工作?
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)
 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)