大佬教程收集整理的这篇文章主要介绍了触发器将同一行复制到另一个表中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何获取表1到表2中的值;这将根据 table1 的列(订单)复制行
表 1:
ID TICKETID USERname FirsTname LASTname orders STATUS
SEL00007 Hema1 Hema Sri 3 New
SEL00008 Romi1 Romi T 2 New
表 2:
ID TICKETID USERname FirsTname LASTname orders STATUS
SEL00007 Hema1 Hema Sri 3 New
SEL00007 Hema1 Hema Sri 3 New
SEL00007 Hema1 Hema Sri 3 New
SEL00008 Romi1 Romi T 2 New
SEL00008 Romi1 Romi T 2 New
这是我参考了很多其他帖子后得出的结论
CREATE OR replaCE trigGER Duplicate_Rows
AFTER INSERT OR updatE ON table1
REFERENCING NEW AS New olD AS old
FOR EACH ROW
DECLARE N_Ord numbER;
BEGIN
N_Ord := (SELECT (orders) from table2);
INSERT INTO Usertable2 (TICKETID,username,firstname,lastname,Status)
SELECT :New.TICKETID,:New.username,:New.firstname,:New.lastname,:New.Status
FROM dual
CONNECT BY LEVEL <= N_Ord;
END Duplicate_Rows;
/
请帮忙!!
关闭;无需单独选择 orders
到变量中;无论如何它都会失败,因为表正在发生变化,因此触发器无法看到它。
触发器:
SQL> CREATE OR replaCE trigGER trg_ai_t1 AFTER
2 INSERT ON table1
3 FOR EACH ROW
4 BEGIN
5 INSERT INTO table2(
6 id,7 ticketid,8 username,9 firstname,10 lastname,11 orders,12 status
13 )
14 SELECT :new.id,15 :new.ticketid,16 :new.username,17 :new.firstname,18 :new.lastname,19 :new.orders,20 :new.status
21 FROM dual CONNECT BY
22 level <= :new.orders;
23
24 END;
25 /
trigger created.
插入table1
:
SQL> INSERT INTO table1(
2 id,3 ticketid,4 username,5 firstname,6 lastname,7 orders,8 status
9 )VALUES(
10 'SEL00007',11 NULL,12 'Hema1',13 'Hema',14 'Sri',15 3,16 'New'
17 );
1 row created.
结果:
SQL> SELECT *
2 FROM table1;
ID TICKETID USERNAME FIRST LASTN orders STATU
---------- ---------- ---------- ----- ----- ---------- -----
SEL00007 Hema1 Hema Sri 3 New
SQL> SELECT *
2 FROM table2;
ID TICKETID USERNAME FIRST LASTN orders STATU
---------- ---------- ---------- ----- ----- ---------- -----
SEL00007 Hema1 Hema Sri 3 New
SEL00007 Hema1 Hema Sri 3 New
SEL00007 Hema1 Hema Sri 3 New
SQL>
以上是大佬教程为你收集整理的触发器将同一行复制到另一个表中全部内容,希望文章能够帮你解决触发器将同一行复制到另一个表中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。