当前位置: 代码迷 >> Oracle开发 >> Oracle9i插入的有关问题
  详细解决方案

Oracle9i插入的有关问题

热度:23   发布时间:2016-04-24 07:19:36.0
Oracle9i插入的问题
我有两个表

GOODS为商品,有GOODS_ID,GOODS_NUM,GOODS_NAME,CAUTION_NUM

当GOODS_NUM的值<CAUTION_NUM的值的时候,我就向名为INDENT的表中插入

GOODS_ID,GOODS_NUM,GOODS_NAME,INDENT_DATE,INDENT_NUM

其中INDENT_NUM为创建的序列IDENTSEQUENCE生成的序列的值。

请问这个触发器怎么写?

获取系统当前时间是 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

------解决方案--------------------
SQL code
create or replace trigger TR_T_GOODS_aiau  after insert on test_goods       --插入之后触发  --after UPDATE ON test_goods       --更新之后触发  FOR EACH ROWDECLARE  -- 当 GOODS_NUM 的值<CAUTION_NUM 的值的时候,我就向名为INDENT的表中插入  --GOODS_ID,GOODS_NUM,GOODS_NAME,INDENT_DATE,INDENT_NUM  --其中INDENT_NUM为创建的序列IDENTSEQUENCE生成的序列的值。  --AUTHOR 戴忠德  --LOCAL VARIABLES HEREBEGIN  IF :OLD.GOODS_NUM < :OLD.CAUTION_NUM then    --向名为INDENT的表中插入    --DBMS_OUTPUT.PUT_LINE('GOODS_NUM 的值<CAUTION_NUM  准备插入,开始执行触发器.....');    INSERT INTO TEST_INDENT(GOODS_ID, GOODS_NUM, GOODS_NAME, INDENT_NUM)      values (:OLD.GOODS_ID, :OLD.GOODS_NUM, :OLD.GOODS_NAME, IDENTSEQUENCE.nextval) ;    --DBMS_OUTPUT.PUT_LINE('GOODS_NUM 的值<CAUTION_NUM ,触发器执行成功');  END IF;END TR_T_GOODS_aiau;
  相关解决方案