在外部应用程序中,我想执行以下操作:
所以表格看起来像这样:
SELECT employee_id, name, dob
FROM YourTable
UNION
SELECT employee_id, father_name, dob
FROM YourTable
这是否可以仅在postgresql中完成?或者可以在创建表A中的项后将id返回给我的应用程序,这样我的应用程序可以添加其余的值吗?
我查看了following post,但它的语法不正确,导致无限循环导致堆栈溢出(多么讽刺)。
答案 0 :(得分:3)
有几种方法可以做到:
假设a._id
是serial
列:
insert into a (data) values ('foo');
insert into b (_id, other_data) values (lastval(), 'foobar');
编辑(在评论中讨论后):
请注意,lastval()
是并发安全的(与所有序列相关的函数)。即使其他会话在两个语句之间插入a
内容,lastval()
仍会返回与当前会话相关的值(即前一个会话生成的值) {1}})
您已经链接到的问题详细描述了其他方法:https://stackoverflow.com/a/6560530/330315
或使用数据修改CTE:
insert