首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最快检查PostgreSQL中是否存在行

最快检查PostgreSQL中是否存在行
EN

Stack Overflow用户
提问于 2011-09-19 21:22:15
回答 4查看 237.2K关注 0票数 221

我有一堆需要插入到表中的行,但这些插入总是成批完成的。因此,我想检查表中是否存在批次中的一行,因为这样我就知道它们都被插入了。

所以这不是一个主键检查,但不应该太重要。我只想检查单行,所以count(*)可能不太好,所以我猜它有点像exists

但是因为我是PostgreSQL的新手,所以我更愿意去问那些知道的人。

我的批次包含具有以下结构的行:

代码语言:javascript
运行
复制
userid | rightid | remaining_count

因此,如果table包含任何具有所提供userid的行,则意味着它们都在那里。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-10 01:30:18

使用EXISTS关键字表示TRUE / FALSE返回:

代码语言:javascript
运行
复制
select exists(select 1 from contact where id=12)
票数 444
EN

Stack Overflow用户

发布于 2011-09-20 11:25:57

如果你考虑到性能,也许你可以在函数中使用“performace”,就像这样:

代码语言:javascript
运行
复制
 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;
票数 3
EN

Stack Overflow用户

发布于 2011-09-19 21:37:37

代码语言:javascript
运行
复制
SELECT 1 FROM user_right where userid = ? LIMIT 1

如果结果集包含行,则不必插入。否则,插入您的记录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7471625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档