Postgres INSERT ON CONFLICT DO NOTHING vs SELECT + INSERTクエリ

シュンユアンティー

stock_price_code以下のような表があります。value列にUNIQUE制約があります。

create table stock_price_code (
    id serial primary key,
    value text not null,
    unique (value)
);

INSERTのレコードが見つからない場合は、テーブル入れたいですvalue私はこれらの2つのクエリを持っています:

-- query 1
INSERT INTO stock_price_code (value)
    SELECT 'MCD'
    WHERE NOT EXISTS (SELECT * FROM stock_price_code WHERE value = 'MCD')
    RETURNING id;


-- query 2
INSERT INTO stock_price_code (value) VALUES ('MCD')
    ON CONFLICT (value) DO NOTHING
    RETURNING id;

query 1Postgres9.5より前に使用していましたその後、Postgres9.5はINSERT ... ON CONFLICT ...機能の導入を開始しました私はsubstitudeた場合query 1query 2、任意の既知の副作用かもパフォーマンスの問題があるのでしょうか?ありがとう。

ヴァオツン

クエリ2は、SELECT 'MCD' WHERE NOT EXISTS (SELECT * FROM stock_price_code WHERE value = 'MCD')との間に行が挿入された場合に機能しますがINSERT INTO stock_price_code (value)クエリ1は重複して失敗します。

ON CONFLICT私が信じているオーバーヘッドはそれよりも小さい思いますがWHERE NOT EXISTS、確かではありません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Postgres INSERT ON CONFLICT DO NOTHING vs SELECT + INSERT query

分類Dev

Postgres INSERT ON CONFLICT with JSONB

分類Dev

Postgres INSERT ON CONFLICT DO UPDATE vsINSERTまたはUPDATE

分類Dev

Postgres 9.5 ON CONFLICT DO SELECT

分類Dev

PostgreSQL duplicate key value violates unique constraint while using on conflict do nothing on insert

分類Dev

Postgres - UNION ALL vs INSERT INTO which is better?

分類Dev

Is it ok to insert ascii decimal characters in postgres select query?

分類Dev

ON CONFLICT DO NOTHING for UPDATEpostgresに相当します

分類Dev

ON CONFLICT DO NOTHINGは、次の挿入ステートメントに続くクエリを停止しません

分類Dev

これは、PostgresでINSERT ON CONFLICTを一括する正しい方法ですか?

分類Dev

Insert POINT into postgres database

分類Dev

Insert JSON into Postgres 9.5

分類Dev

この postgres クエリ INSERT を作成する方法は?

分類Dev

Postgres:selectでinsertを使用する際の問題

分類Dev

SQL Select In Select for insert Stement

分類Dev

INSERTクエリでネストされたSELECT

分類Dev

PostgreSQL; INSERTでのSELECTサブクエリの使用

分類Dev

MySQL クエリ INSERT SELECT に列と値を追加する方法

分類Dev

変数を使用した INSERT SELECT SQL クエリ

分類Dev

postgresql:INSERT INTO ...(SELECT * ...)

分類Dev

Insert ... select with enums in jOOQ

分類Dev

Apache Camel select then insert

分類Dev

Select if exist else insert?

分類Dev

SQL CASE SELECT INSERT

分類Dev

SQL select and insert if not exists

分類Dev

converting insert into to select

分類Dev

MySql Insert Into Select Sum

分類Dev

INSERT INTO ... mysqlのSELECT

分類Dev

INSERT INTO SELECTPDOクエリ

Related 関連記事

  1. 1

    Postgres INSERT ON CONFLICT DO NOTHING vs SELECT + INSERT query

  2. 2

    Postgres INSERT ON CONFLICT with JSONB

  3. 3

    Postgres INSERT ON CONFLICT DO UPDATE vsINSERTまたはUPDATE

  4. 4

    Postgres 9.5 ON CONFLICT DO SELECT

  5. 5

    PostgreSQL duplicate key value violates unique constraint while using on conflict do nothing on insert

  6. 6

    Postgres - UNION ALL vs INSERT INTO which is better?

  7. 7

    Is it ok to insert ascii decimal characters in postgres select query?

  8. 8

    ON CONFLICT DO NOTHING for UPDATEpostgresに相当します

  9. 9

    ON CONFLICT DO NOTHINGは、次の挿入ステートメントに続くクエリを停止しません

  10. 10

    これは、PostgresでINSERT ON CONFLICTを一括する正しい方法ですか?

  11. 11

    Insert POINT into postgres database

  12. 12

    Insert JSON into Postgres 9.5

  13. 13

    この postgres クエリ INSERT を作成する方法は?

  14. 14

    Postgres:selectでinsertを使用する際の問題

  15. 15

    SQL Select In Select for insert Stement

  16. 16

    INSERTクエリでネストされたSELECT

  17. 17

    PostgreSQL; INSERTでのSELECTサブクエリの使用

  18. 18

    MySQL クエリ INSERT SELECT に列と値を追加する方法

  19. 19

    変数を使用した INSERT SELECT SQL クエリ

  20. 20

    postgresql:INSERT INTO ...(SELECT * ...)

  21. 21

    Insert ... select with enums in jOOQ

  22. 22

    Apache Camel select then insert

  23. 23

    Select if exist else insert?

  24. 24

    SQL CASE SELECT INSERT

  25. 25

    SQL select and insert if not exists

  26. 26

    converting insert into to select

  27. 27

    MySql Insert Into Select Sum

  28. 28

    INSERT INTO ... mysqlのSELECT

  29. 29

    INSERT INTO SELECTPDOクエリ

ホットタグ

アーカイブ