我有两个表,它们通过一个字段连接:表A和表B的B_ID。表B的id。
我想用sql将数据插入这两个表。
如何编写insert sql?
1,表B中的id是自动递增。
2,以愚蠢的方式,我可以先将数据插入表B,然后从表B中选择id,然后将id作为message_id添加到表A.
答案 0 :(得分:1)
您无法在一个SQL语句中将数据插入多个表。只需先将数据插入B表,然后再插入表A.您可以使用RETURNING语句获取ID值,并在插入之间删除其他select语句。
请参阅:https://oracle-base.com/articles/misc/dml-returning-into-clause
答案 1 :(得分:0)
您是否听说过AFTER INSERT
触发器?我认为这正是你要找的。 p>
这样的事可能会做你想要的:
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;
/