1. ホーム
  2. sql

[解決済み】PostgreSQLで行が存在するかどうかを最速でチェックする方法

2022-04-05 14:25:47

質問

テーブルに挿入する必要のある行がたくさんありますが、これらの挿入は常にバッチで行われます。そこで、バッチから単一の行がテーブルに存在するかどうかをチェックしたいのですが、そうすれば、すべての行が挿入されたことを知ることができます。

そのため、主キーのチェックではありませんが、あまり重要ではないはずです。1行だけチェックしたいので count(*) は良くないと思うので、次のようにします。 exists でしょうね。

しかし、私はPostgreSQLのかなり初心者なので、むしろ知っている人に聞きたいのです。

私のバッチは以下のような構造の行を含んでいます。

userid | rightid | remaining_count

したがって、もしテーブルの中に userid は、それらがすべてそこに存在することを意味します。

解決方法は?

EXISTSキーワードでTRUE/FALSEを返します。

select exists(select 1 from contact where id=12)