【问题标题】:¿Trigger in oracle after insert?¿ 插入后在 oracle 中触发?
【发布时间】:2017-09-15 22:24:51
【问题描述】:

我有一个使用 oracle 数据库 11g 的 netbeans Web 应用程序,我需要在我的 table_A 上插入后自动在我的 table_B 上插入数据,

我的 table_A 有:

  • id_product

del_product

对比

pre_prod

我的 table_B 有相同的列,但我需要在更新后从 table_A 复制所有数据。

我是使用触发器的新手,我对此一无所知,您能帮帮我吗?

这是我尝试的代码,但它不起作用。

   create or replace trigger color_omes
after update update of (id_del, dele, contr)
on dele
for each row
begin
insert into del3 values(new.id_del, new.dele, new.contr);
end color_omes;

但是出了点问题,我收到了这个错误

ORA-00969: missing ON keyword

【问题讨论】:

  • SO 不适用于教程和操作方法。如果你不知道触发器,你应该先做一些搜索,阅读一些教程,学习一些东西,然后尝试编写一些代码。如果您的代码有问题,请随时在此处发布问题。
  • 我搜索了一下,其实上面有一段代码,我已经写好了。

标签: oracle triggers


【解决方案1】:

您的代码中有一些问题:

CREATE OR REPLACE TRIGGER color_omes
AFTER UPDATE OF id_del, dele, contr
ON dele
FOR EACH ROW
BEGIN
    INSERT INTO del3 VALUES(:new.id_del, :new.dele, :new.contr);
END color_omes;

它是如何工作的:

SQL> select * from del3;

no rows selected

SQL> update dele set contr = 100;

1 row updated.

SQL> select * from del3;

    ID_DEL       DELE      CONTR
---------- ---------- ----------
         1          2        100

【讨论】:

  • 非常感谢,它运行了,但是当我更新数据时没有发生任何事情,表是空的。
  • 添加代码、数据样本,更容易找到答案。
  • 触发器工作,只是显示了它的作用。如果它真的如你所愿,那当然是另一个问题了
猜你喜欢
  • 2012-03-30
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 2018-03-25
相关资源
最近更新 更多