17,377
社区成员
发帖
与我相关
我的任务
分享
--实现列值自动增长,不同的数据库厂家有自己的方法:
--oracle sequence
create sequence SEQ_AUTO_ADD
minvalue 1
maxvalue 10
start with 11
increment by 1
nocache
order;
--
create table t(id_no varchar2(2));
declare
v_num number;
begin
for v_num in 1..10
loop
insert into t(id_no)
values(seq_auto_add.nextval);--首次引用sequence,引用nextval
end loop;
end;
--
SQL> select * from t;
ID_NO
-----
1
2
3
4
5
6
7
8
9
10
--
--sql server 中使用了identity
IDENTITY (data_type [ , seed , increment ] ) AS column_name
尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。
data_type
标识列的数据类型。标识列的有效数据类型可以是任何整数数据类型类别的数据类型(bit 数据类型除外),
也可以是 decimal 数据类型。
seed
要分配给表中第一行的整数值。为每一个后续行分配下一个标识值,
该值等于上一个 IDENTITY 值加上 increment 值。
如果既没有指定 seed,也没有指定 increment ,那么它们都默认为 1。
increment
要加到表中后续行的 seed 值上的整数值。
column_name
将插入到新表中的列的名称
eg.
create table test(id int identity(1,1),mc varchar(20))