我有两个表,假设为tblA和tblB。
我需要在tblA中插入一行,并将返回的id值用作插入到tblB中的一个列的值。
我尝试在文档中查找此信息,但未找到。那么,是否可以编写一个语句(用于预处理),如下:
INSERT INTO tblB VALUES
(DEFAULT, (INSERT INTO tblA (DEFAULT, 'x') RETURNING id), 'y')
我应该像SELECT语句一样处理吗?
还是说我需要创建一个存储过程?我不确定是否能够从存储过程中创建一个预处理语句。
请给予建议。
谢谢,
Mayank
currval
不是最好的选择。首先,它假定 id 是基于序列的。其次,除非明确使用事务,否则键的值在插入之间可能会发生更改,这会破坏完整性。第三,它不能重复使用。但这只是我的观点,您不必同意 :) - Mikicurrval
是一个很好的选择”。然而,第三个关注点仍然存在-但它是一个设计问题,不包含在问题中,可能会引发无休止的辩论,所以最好在这里停止。 - Miki