我有一堆需要插入到表中的行,但这些插入总是成批完成的。因此,我想检查表中是否存在批次中的一行,因为这样我就知道它们都被插入了。
所以这不是一个主键检查,但不应该太重要。我只想检查单行,所以count(*)
可能不太好,所以我猜它有点像exists
。
但是因为我是PostgreSQL的新手,所以我更愿意去问那些知道的人。
我的批次包含具有以下结构的行:
userid | rightid | remaining_count
因此,如果table包含任何具有所提供userid
的行,则意味着它们都在那里。
发布于 2013-05-10 01:30:18
使用EXISTS关键字表示TRUE / FALSE返回:
select exists(select 1 from contact where id=12)
发布于 2011-09-20 11:25:57
如果你考虑到性能,也许你可以在函数中使用“performace”,就像这样:
PERFORM 1 FROM skytf.test_2 WHERE id=i LIMIT 1;
IF FOUND THEN
RAISE NOTICE ' found record id=%', i;
ELSE
RAISE NOTICE ' not found record id=%', i;
END IF;
发布于 2011-09-19 21:37:37
SELECT 1 FROM user_right where userid = ? LIMIT 1
如果结果集包含行,则不必插入。否则,插入您的记录。
https://stackoverflow.com/questions/7471625
复制相似问题