首页 > 解决方案 > INSERT 中的某种 IF 条件

问题描述

我有下一张桌子:

   table1               table2
id. value position    id   state
                       1.  false

如果表 2 的状态为真,我需要将数据插入表 1。就像是:

INSERT INTO table1(value, position)
VALUES('someVal', 3)
IF table2.id = 1 AND table2.state = true

标签: sqlpostgresql

解决方案


你想要exists吗?

INSERT INTO table1(value, position)
    SELECT v.value, v.position
    FROM (VALUES('someVal', 3)) v(value, position)
    WHERE EXISTS (SELECT 1 FROM TABLE2 t2 WHERE t2.id = 1 AND t2.state = true);

推荐阅读