简体   繁体   English

pl sql触发序列中的插入值

[英]pl sql trigger insert values from a sequence

create table userdetail(
  userdetailsid number(3) not null,
  userid varchar2(5),
  firstname varchar2(15),
  lastname varchar2(15),
  email varchar2(15),
  primary key (userdetailsid)
);

create sequence Iseq
start with 1
increment by 1;

create or replace trigger userDetailInsert
before insert on userdetail
begin
  :userdetailsid:=Iseq.nextval;
end;

the error I get is as follows: 我得到的错误如下:

Error at line 2: PLS-00049: bad bind variable 'USERDETAILSID'

Remove : from :userdetailsid or use :old. :userdetailsid删除:或使用:old. / :new in combination with for each row : / :newfor each row结合使用:

create or replace trigger userDetailInsert
before insert on userdetail for each row
begin
   :new.userdetailsid:=Iseq.nextval;
end;

If you use a : the column name is considered to be a bind variable . 如果使用a :列名被视为绑定变量

Generally said, if you want to reference old or new values use :old.userdetailsid resp. 一般而言,如果要引用旧值或新值,请使用:old.userdetailsid resp。 :new.userdetailsid . :new.userdetailsid

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM