Postgresql - 插入时选择返回的东西

问题描述:

是否有可能运行选择查询,检查行是否存在,然后插入一些值?我想在一个查询中这样做。我想SELECT ... CASE ..然后,例如:Postgresql - 插入时选择返回的东西

SELECT user_id, CASE when user_id > 0 then (INSERT INTO another_table ...) ELSE return 0 END 
FROM users WHERE user_id = 10 

现在我能做到这一点,2个查询,先不要选择和第二嵌入值(如果第一次查询返回的东西)。

谢谢!

+1

'插入..选择存在的地方(你的选择qry)'?.. –

一般结构是:

INSERT INTO another_table 
SELECT value1,value2..etc 
where exists (SELECT user_id FROM users WHERE user_id = 10) 

或在该特定情况下:

INSERT INTO another_table 
SELECT value1,value2..etc 
FROM users WHERE user_id = 10 

如果没有这样的用户,没有行会被选中,因此插入

+0

你是老板!谢谢。 – Ridd