Postgresql - 在 select return 某事时插入

Postgresql - Insert when select return something

是否可以运行 select查询,检查行是否存在,然后插入一些值?我想在一个查询中做到这一点。我考虑SELECT .. CASE .. THEN,例如:

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

现在我可以使用 2 个查询来做到这一点,首先执行 SELECT 和第二个 INSERT 值(如果第一个查询 return 某些东西)。

谢谢!

一般来说,构造是:

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

如果没有这样的用户,将不会选择并插入任何行