CREATE TABLE a (id NUMBER PRIMARY KEY, cl VARCHAR2(10)); CREATE SEQUENCE a_seq; CREATE TRIGGER a_trigger BEFORE INSERT ON a FOR EACH ROW BEGIN SELECT a_seq.nextval INTO :new.id FROM DUAL; END; /INSERT INTO a(cl) VALUES('YM'); INSERT INTO a(cl) VALUES('WB');COMMIT;SELECT * FROM a; PK CL ---------- ---------- 1 YM 2 WB
对于oracle也可以用序列来完成自动增长 -- Create sequence create sequence INNERID minvalue 1 maxvalue 99999999999999 start with 1 increment by 1 cache 20 order; ◆2.--INNERID.currval 指当前序列 --INNERID.nextval 指下一个序列 create table admin (id varchar2(20),name varchar2(10)); insert into admin values (INNERID.nextval,'a'); insert into admin values (INNERID.nextval,'b'); insert into admin values (INNERID.nextval,'c'); insert into admin values (INNERID.nextval,'d');
(id NUMBER PRIMARY KEY,
cl VARCHAR2(10));
CREATE SEQUENCE a_seq;
CREATE TRIGGER a_trigger
BEFORE INSERT ON a
FOR EACH ROW
BEGIN
SELECT a_seq.nextval INTO :new.id FROM DUAL;
END;
/INSERT INTO a(cl) VALUES('YM');
INSERT INTO a(cl) VALUES('WB');COMMIT;SELECT * FROM a; PK CL
---------- ----------
1 YM
2 WB
-- Create sequence
create sequence INNERID
minvalue 1
maxvalue 99999999999999
start with 1
increment by 1
cache 20
order; ◆2.--INNERID.currval 指当前序列 --INNERID.nextval 指下一个序列
create table admin
(id varchar2(20),name varchar2(10)); insert into admin values (INNERID.nextval,'a');
insert into admin values (INNERID.nextval,'b');
insert into admin values (INNERID.nextval,'c');
insert into admin values (INNERID.nextval,'d');