如何在同一事务中为后续插入使用新 ID
How to use new ID for subsequent inserts in same transaction
使用 Oracle,我们有 2 个 tables - Parent 和 Child。
我们在 Parent table 中将 ID 列作为 GUID,并且该值在插入之前由触发器创建。
现在在同一个事务中插入记录时,我需要
- 先在Parenttable中添加一条记录,然后
- 使用在触发器中创建的新 GUID 将记录添加到子 table
如何为后续插入检索这个新的 GUID?
您可以使用 insert
语句的 returning into
子句
INSERT INTO parent VALUES (col1, ...)
RETURNING <your id column > INTO < variable>;
insert into child (parent_id) values (< variable>);
使用 Oracle,我们有 2 个 tables - Parent 和 Child。
我们在 Parent table 中将 ID 列作为 GUID,并且该值在插入之前由触发器创建。
现在在同一个事务中插入记录时,我需要 - 先在Parenttable中添加一条记录,然后 - 使用在触发器中创建的新 GUID 将记录添加到子 table
如何为后续插入检索这个新的 GUID?
您可以使用 insert
语句的 returning into
子句
INSERT INTO parent VALUES (col1, ...)
RETURNING <your id column > INTO < variable>;
insert into child (parent_id) values (< variable>);