如何使用一个sql插入数据到两个表?

时间:2016-08-11 02:38:27

标签: oracle

我有两个表,它们通过一个字段连接:表A和表B的B_ID。表B的id。

我想用sql将数据插入这两个表。

如何编写insert sql?

1,表B中的id是自动递增。

2,以愚蠢的方式,我可以先将数据插入表B,然后从表B中选择id,然后将id作为message_id添加到表A.

table A

table B

2 个答案:

答案 0 :(得分:1)

您无法在一个SQL语句中将数据插入多个表。只需先将数据插入B表,然后再插入表A.您可以使用RETURNING语句获取ID值,并在插入之间删除其他select语句。

请参阅:https://oracle-base.com/articles/misc/dml-returning-into-clause

答案 1 :(得分:0)

您是否听说过AFTER INSERT触发器?我认为这正是你要找的。

这样的事可能会做你想要的:

CREATE OR REPLACE TRIGGER TableB_after_insert
AFTER INSERT
   ON TableB
   FOR EACH ROW

DECLARE
   v_id int;

BEGIN
   /*
    * 1. Select your id from TableB
    * 2. Insert data to TableA
    */
END;

/