1、建用户数据表
建立表test,data_id为主键2、创建自动增长序列
create sequence test_seq minvalue 1 maxvalue 9999999999
increment by 1
start with 1; /*步长为1*/3、创建触发器
create trigger test_trigger
befor insert on test
for each row;
declare new.data_id number;
begin 
select test_deq.nextval into new.data_id from dual;
end test_trigger;
在SQL中到最后一步end test_trigger;的时候始终退不出去是什么原因
界面是这个样子的
SQL>create trigger test_trigger
    2 befor insert on test
    3 for each row;
    4 declare new.data_id number;
    5 begin 
    6 select test_deq.nextval into new.data_id from dual;
    7 end test_trigger;
    8
    9
    10
到底是哪错了?
    

解决方案 »

  1.   

    into new.data_id 改成:into :new.data_id 
      

  2.   

    for each row; 
    后面不用分号
      

  3.   

    SQL> create or replace trigger test_trigger
      2  before insert on test
      3  for each row
      4  begin
      5  select test_seq.nextval into :new.data_id from dual;
      6  end test_trigger;
      7  /Trigger created
      

  4.   

    综述:1、多了个分号。
    2、不需要declare。
    3、加冒号
    4、befor---before
    5、test_deq---test_seq
      

  5.   

    问题解决了
    create or replace trigger test_trigger
    before insert on test
    for each row
    begin 
    select test_seq.nextval into :new.data_id from dual;
    end test_trigger;
    /
    谢谢楼上各位