检查PG表中行记录是否已存在,可通过发起一个select看下是否有行记录返回,但是依赖于如何做到这点,返回的结果可能比较奇怪或者不太高效。
EXISTS子查询表达式可用于明确确定另一个查询是否返回任何行,因此可以用于检测特定行是否存在:
代码语言:javascript复制# CREATE TABLE test(id BIGSERIAL PRIMARYKEY);
# INSERT INTO test(id) VALUES (13);
# SELECT EXISTS(SELECT 1 FROM test WHEREid=11) AS "exists";
exists
--------
f
(1 row)
代码语言:javascript复制# SELECT EXISTS(SELECT 1 FROM test WHEREid=13) AS "exists";
exists
--------
t
(1 row)
EXISTS总是返回一个bool值,true或者false。
原文:
https://postgresweekly.com/issues/370