Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要立即删除触发表上的Oracle触发器插入值_Sql_Oracle - Fatal编程技术网

Sql 需要立即删除触发表上的Oracle触发器插入值

Sql 需要立即删除触发表上的Oracle触发器插入值,sql,oracle,Sql,Oracle,我已经为表T1编写了一个触发器INSERT event,它将在另一个表(T2)中插入相同的行。但我的要求是,在T2中插入记录后,应该将其从T1中删除。请你建议……我建议你做以下事情: 1-创建要插入t2的过程: CREATE OR REPLACE PROCEDURE yourname (IN values YOURTYPE) IS PRAGMA AUTONOMOUS_TRANSACTION; BEGIN INSERT INTO T2 (...) VALUES (...); CO

我已经为表T1编写了一个触发器INSERT event,它将在另一个表(T2)中插入相同的行。但我的要求是,在T2中插入记录后,应该将其从T1中删除。请你建议……

我建议你做以下事情:

1-创建要插入t2的过程:

CREATE OR REPLACE PROCEDURE yourname (IN values YOURTYPE) IS 
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
    INSERT INTO T2 (...) VALUES (...);
    COMMIT;
END
/
2-在插入T1后的
触发器内调用此函数

3-在此之后回滚触发器中的事务。 应取消第一次插入


请注意,这会影响交易的任何其他先前操作。

根据将插入同一行的
,并且应该从T1中删除
,看起来根本不需要在
T1
中插入行。还是有什么你不说的?我明白了。但是我的要求是这样的。T1可以是视图而不是表吗?+1还要注意,如果回滚主事务,T2中仍然会有一个新行。