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
如果没有这样的用户,将不会选择并插入任何行
是否可以运行 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
如果没有这样的用户,将不会选择并插入任何行