步骤1. 创建表、设置非空、主键
CREATE
TABLE example(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
PHONE VARCHAR(10),
ADDRESS VARCHAR(50)
);
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
PHONE VARCHAR(10),
ADDRESS VARCHAR(50)
);
步骤2. 设置为自增,且设定步长
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
步骤3.
你只有了表和序列还不够,还需要一个触发器来执行它!
CREATE
TRIGGER "触发器名称" BEFORE
INSERT ON example FOR EACH ROW WHEN (new.id is null)
begin
select emp_sequence.nextval into: new.id from dual;
end;
INSERT ON example FOR EACH ROW WHEN (new.id is null)
begin
select emp_sequence.nextval into: new.id from dual;
end;
创建表
- SQL> create table address(addressId integer not null primary key, province varchar(20),community varchar(20), street var
- char(20), houseNumber integer);
- 表已创建。
创建序列
- SQL> CREATE SEQUENCE addr_seq
- 2 INCREMENT BY 1 -- 每次加几个
- 3 START WITH 1 -- 从1开始计数
- 4 NOMAXVALUE -- 不设置最大值
- 5 NOCYCLE -- 一直累加,不循环
- 6 NOCACHE -- 不建缓冲区
- 7 ;
- 序列已创建。
创建触发器
- SQL> CREATE TRIGGER "addr_trigger" BEFORE
- 2 INSERT ON address FOR EACH ROW WHEN (new.addressId is null)
- 3 begin
- 4 select addr_seq.nextval into :new.addressId from dual;
- 5 end;
- 6 /
- 触发器已创建
转载于:https://blog.51cto.com/tianya23/252665