SQL> create table scott.logon( 2 id number(4) not null primary key, 3 name varchar(10), 4 password varchar(20));
Table created
SQL> create sequence logon_sequence 2 increment by 1 3 start with 1 4 nomaxvalue 5 nocycle 6 cache 10;
Sequence created
SQL> create trigger logon_tg before insert on scott.logon 2 for each row 3 begin 4 select logon_sequence.nextval into:new.id from dual; 5 end; 6 commit; 7 ´¥·¢Æ÷Öв»ÄÜcommit ³ý·ÇʹÓÃ×ÔÖÎÊÂÎñ ÎÊÌâʱÄãÕâ´¥·¢Æ÷ÖеIJéѯÓï¾äÔÚÖ´ÐÐʱÊä³öµ½ÄĶùÄØ?¿ØÖÆÌ¨>
×ö¸ö±ê¼Ç¡£ ÕâÀïµÄ´¥·¢Æ÷Ó¦¸ÃÓÃafter°É£¬µ«»áÌáʾORA-04084:cannot change NEW values for this trigger type¡£ÆÚ´ý¸ßÊÖ½â¾ö ÎÒ²âÊÔÁËһϣ¬³ýÁËcommit; ûÓÐÎÊÌâ insert into logon(name) values('aaa'); insert into logon(name) values('aaa'); insert into logon(name) values('bbb');
select * from logon /
ID NAME PASSWORD ----- ---------- -------------------- 1 aaa 2 aaa 3 bbb