SQL> CREATE TRIGGER Update_ShortageRegister
  2   AFTER INSERT ON PurchasedList
  3   FOR EACH ROW
  4    BEGIN
  5     UPDATE ShortageRegister SET Qty_in_short=Qty_in_short-:new.Qty_in_addtion WHERE Isbn=:new.Is
bn; 
  6     IF Qty_in_short=0 THEN
  7     DELETE FORM ShortageRegister WHERE Qty_in_short=0;
  8     END IF;
  9    END;
 10  /警告: 创建的触发器带有编译错误。SQL> SHOW ERROR
TRIGGER UPDATE_SHORTAGEREGISTER 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
3/4      PL/SQL: Statement ignored
3/7      PLS-00201: 必须声明标识符 'QTY_IN_SHORT'
我确认 SHORTAGEREGISTER这个表已经创建 而且 QTY_IN_SHORT 确实是里面的一个字段问题处在哪里呢??

解决方案 »

  1.   

    IF Qty_in_short=0 THEN 建议楼主先用plsql
      

  2.   

    IF Qty_in_short=0 THEN 有问题 
      

  3.   

    哦 我的原意是想在更新数据后再去判断 
    不可以这么写么?IF Qty_in_short=0 THEN  这个问题出在哪里 是语法问题还是什么?
    该怎么修改呢??
      

  4.   

    Qty_in_short 没有定义。
      

  5.   

    你可以用游标遍历这张表,在游标里判断Qty_in_short=0这个条件。