|
|
|
|
|
先创建一个sequence,通过序列来实现
如:create table aa ( a number not null ...); create sequence seq_a start with 1 maxvalue 999999999; update aa set a=seq_a.nextv_al; |
|
第一步:创建SEQUENCE
create sequence s_country_id increment by 1 start with 1 maxvalue 999999999; 第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE CREATE OR REPLACE TRIGGER 名 BEFORE INSERT ON 表 REFERENCING OLD AS old NEW AS new FOR EACH ROW BEGIN SELECT s_country_id.NEXTVAL INTO :new.列名 FROM dual; END T_A_MemberShipID; |
|
|
|
创建trigger那一步不太明白。。。不好意思以前没用过oracle也没用过trigger,能说详细一点吗??
REFERENCING OLD AS old NEW AS new 中的old和new是什么,后面的new.列名和dual,end后面的T_A_MemberShipID? 还有最后在sqlplus中如何执行? |
|
|
yfjyz(dd) 的方法要自己插入吧?
我想让数据库在插入新记录时自己增加这个字段。。。 |
|
create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;
/ 执行后: CREATE OR REPLACE TRIGGER 你的名 BEFORE INSERT ON 你的表 REFERENCING OLD AS old NEW AS new FOR EACH ROW BEGIN SELECT s_country_id.NEXTVAL INTO :new.你的列名 FROM dual; END T_A_MemberShipID; / OK |
|
|
|
多谢
|
|