Postgresql - 选择返回时插入
Posted
技术标签:
【中文标题】Postgresql - 选择返回时插入【英文标题】:Postgresql - Insert when select return something 【发布时间】:2017-06-21 09:33:26 【问题描述】:是否可以运行选择查询,检查行是否存在,然后插入一些值?我想在一个查询中做到这一点。我想到了 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 值(如果第一个查询返回某些内容)。
谢谢!
【问题讨论】:
insert.. select vlaues where exists (your select qry)
?..
【参考方案1】:
一般来说结构是:
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
如果没有这样的用户,则不会选择任何行并因此插入
【讨论】:
你是老板!谢谢。以上是关于Postgresql - 选择返回时插入的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 spring boot 和 postgresql 获取布尔值以进行插入
使用 sqlalchemy 连接到本地 postgresql