CREATE TRIGGER TRG_email
BEFORE INSERT ON email
FOR EACH ROW
begin SELECT EMAIL_SEQUENCE.NEXTVAL
INTO :NEW.emid
FROM DUAL;
End ;
PL/SQL DEVELOPER中执行了,end之后就不走了,也不提示是否创建成功看下面的提示
SQL> CREATE TRIGGER TRG_email
2 BEFORE INSERT ON email
3 FOR EACH ROW
4 begin SELECT EMAIL_SEQUENCE.NEXTVAL
5 INTO :NEW.emid
6 FROM DUAL;
7 End ;
8
9
10
11 ;
12 ;
13 ;
BEFORE INSERT ON email
FOR EACH ROW
begin SELECT EMAIL_SEQUENCE.NEXTVAL
INTO :NEW.emid
FROM DUAL;
End ;
PL/SQL DEVELOPER中执行了,end之后就不走了,也不提示是否创建成功看下面的提示
SQL> CREATE TRIGGER TRG_email
2 BEFORE INSERT ON email
3 FOR EACH ROW
4 begin SELECT EMAIL_SEQUENCE.NEXTVAL
5 INTO :NEW.emid
6 FROM DUAL;
7 End ;
8
9
10
11 ;
12 ;
13 ;
BEFORE INSERT ON email
FOR EACH ROW
begin SELECT EMAIL_SEQUENCE.NEXTVAL
INTO :NEW.emid
FROM DUAL;
End TRG_email;
SQL> CREATE TRIGGER TRG_email
2 BEFORE INSERT ON email
3 FOR EACH ROW
4 begin SELECT EMAIL_SEQUENCE.NEXTVAL
5 INTO :NEW.emid
6 FROM DUAL;
7 End TRG_email;
8
9
10
11
12
12
12 为什么没反应,一直这样走下去
2 BEFORE INSERT ON customer
3 FOR EACH ROW
4 begin SELECT seq_action.NEXTVAL
5 INTO :NEW.cus_id
6 FROM DUAL;
7 End TRG_email;
8
9 /
insert into tablename(col1,col2,col3...) values(...)
注意字段对应好。
要么就
insert into tablename values(.....)
但是emid 值你得随便输入一个数,触发器会用序列值将其覆盖
没有填写的话会有错误
不填的话,你得定义插入的字段
你找下原表中Emid最大的值是多少。比如为55的话
drop sequence EMAIL_SEQUENCE;
create sequence EMAIL_SEQUENCE
start with 56;
ORA-00001: 违反唯一约束条件 (CALVINSMITH.PK_EMAIL)
赋的初值要为原表中的emid最大值再加1