CREATE SEQUENCE SINTUID INCREMENT BY 1 START
WITH 1 MAXVALUE 1.0E10 MINVALUE 1
NOCYCLE CACHE 20 NOORDER;
CREATE TRIGGER TRGINTUID4 BEFORE INSERT ON "SCOTT"."T_USERS"
FOR EACH ROW
begin
  select SINTUID.nextval
  into :new.INTUID
  form dual;
end TRGINTUID4;
警告: 创建的触发器带有编译错误。怎么样解决以上问题?谢谢

解决方案 »

  1.   

    CREATE TRIGGER TRGINTUID4 BEFORE INSERT ON "SCOTT"."T_USERS" 
    FOR EACH ROW 
    begin 
    if inserting then
    insert into test values(SINTUID.nextval,....)  
    end TRGINTUID4; 
      

  2.   

    楼上的:
    if inserting then 
    insert into test values(SINTUID.nextval,....)  
    我看不懂的。我刚接触oracle不久,希望能说得详细点。万分感谢
      

  3.   

    如果在你的"SCOTT"."T_USERS"表要插入一条记录之前,就
    插入insert into test values(SINTUID.nextval,....)
    执行这条语句。
      

  4.   

    我想做的是将sqlserver的数据库迁移到oracle时,主键的自增更能改用 序列+触发器 实现
      

  5.   

    你的脚本没有问题,注意下面红色的form,改为from
    CREATE TRIGGER TRGINTUID4 BEFORE INSERT ON "SCOTT"."T_USERS" 
    FOR EACH ROW 
    begin 
      select SINTUID.nextval 
      into :new.INTUID 
      form dual; 
    end TRGINTUID4; 
      

  6.   

    INSERT INTO T_USERS VALUES(SINTUID.nextval,...)