SQL SERVER 2000 & MYSQL & ORALCE 中实现自动递增

来源:互联网 发布:淘宝助理快递模板下载 编辑:程序博客网 时间:2024/06/10 18:51

一、【sql server】
create table oritenson(
id  int  primary key identity(100,1),
name char(20)
);
identity(基数,递增单位)里有两个参数,第一个是表示递增的基数,第二个是每次递增多少单位。
在sql server 里要注意,使用自动递增的时候,对于属性的类型必须是int、bigint、smallint、tinyint 或 decimal 中的,不能是char() 和 varchar() 类型。

二、【mysql】
create table oritenson(
id  int  primary key auto_increment,
name char(20)
); 

三、【oracle】
oralce 没有前两者那么顺利,它需要利用触发器(trigger)和序列(sequence)来实现。

假设关键字段为id,建一个序列,代码为:
   create sequence seq_test_ids
      minvalue 1
      maxvalue 99999999
      start with 1
      increment by 1
      nocache
      order;
      <!--[if !supportLineBreakNewLine]-->
      <!--[endif]-->
建解发器代码为:

create or replace trigger tri_test_id
before insert on test_table 
for each row
declare
nextid number;
begin
IF :new.id IS NULLor :new.id=0 THEN
select seq_test_id.nextval
into nextid
from sys.dual;
:new.id:=nextid;
end if;
end tri_test_id;

原创粉丝点击