如何借助触发器 (Oracle) 将现有记录从 parent table 移动到新创建的 child table?

How can I move existing records from parent table to newly created child table with the help of triggers (Oracle)?

我想创建一个触发器,其中 child table 从 parent table.

中提取所有现有记录

我创建了 child tables 引用 parent table 主键作为新 table

中的外键
CREATE OR REPLACE TRIGGER trigger name
AFTER INSERT ON table_name(parent_table)
FOR EACH ROW 
BEGIN 
   insert statement for child table;
END;

上面的触发器是为将插入 post 到 child table 创建的记录创建的,我想推送所有旧记录(在 [=21 之前存在) =]table创建)到新的childtable。触发器是否有助于提取所有旧记录?

显然不!

trigger 将开始从父 table post 创建的 trigger 向子 table 插入记录。在 trigger 创建之前插入父 table 的记录需要手动插入。

如果你想在创建 trigger 之前将所有记录从父 table 拉到子 table 中,那么你需要编写一次性 INSERT 查询作为以下:

INSERT INTO CHILD_TABLE
SELECT * FROM PARENT_TABLE P 
WHERE NOT EXISTS (SELECT 1 FROM CHILD_TABLE C WHERE P.PK = C.FK);

-- 或--

INSERT INTO CHILD_TABLE
SELECT * FROM PARENT_TABLE P 
WHERE P.PK IN 
(SELECT PK FROM PARENT_TABLE
MINUS
SELECT FK FROM CHILD_TABLE
)

干杯!!