您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Postgres:如果不存在则插入,否则返回行

Postgres:如果不存在则插入,否则返回行

WITH d(t, e) AS ( VALUES (‘abcdefg’, ‘2014-05-14 20:25:12.279667’)), t AS (SELECT token FROM session, d WHERE token=t), i AS (INSERT INTO session (token, expiry) SELECT t, e FROM d WHERE t NOT IN (SELECT token FROM t)) SELECT t,e FROM d WHERE t IN (SELECT token FROM t);

查询首先使用您要插入的数据进行CTE

然后,它使用会话中的令牌与 *

然后,如果它在 ***

最后,如果在 t中* 有匹配项,则从 返回行。 *

顺便说一句,这也适用于多行。

Postgres 2022/1/1 18:39:20 有417人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶