
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ON CONFLICT を使った場合、競合した行はEXCLUDED という名前の「テーブル」に一時保存されます。
列はINSERT対象のテーブルと同じです。https://www.postgresql.jp/document/9.5/html/sql- …
> ON CONFLICT DO UPDATEのSET句とWHEREは既存の行にテーブルの名前(または別名)を使ってアクセスでき、また挿入されようとしていた行には、特別なexcludedテーブルを使ってアクセスできます。
まず、CONFLICTを使わない複数行同時のINSERTを考えます。
INSERT INTO table1
VALUES
(10, 20, 30),
(11, 21, 31)
これに、CONFLICT以降を追加します。
このとき、UPDATEの値を直接書くのではなく、EXCLUDEDテーブルからの値、として記述します。
ON CONFLICT ON CONSTRAINT pk_table1
DO UPDATE
SET
b = EXCLUDED.b,
c = EXCLUDED.c
No.2
- 回答日時:
具体的に、何がわからないのでしょうか?
INSERT 〜 ON CONFLICT UPDATE 〜 は、 VALUE に複数行指定したり、クエリで複数行指定したりした場合にも対応しています。
お返事遅くなり失礼します。
具体的には今今以下の文1と文2があるのですがこれを1つにまとめるにはどう書けば良いでしょうか。
宜しくお願い致します。
【文1】
INSERT INTO table1
VALUES(10, 20, 30)
ON CONFLICT ON CONSTRAINT pk_table1
DO UPDATE SET b = 20, c = 30
【文2】
INSERT INTO table1
VALUES(11, 21, 31)
ON CONFLICT ON CONSTRAINT pk_table1
DO UPDATE SET b = 21, c = 31
※上記の10, 11の箇所がプライマリキーです。
No.1
- 回答日時:
完璧に初心者です。
ググっただけですし。
取得した別のテーブルのデータをテーブルに追加する
https://www.dbonline.jp/postgresql/insert/index2 …
具体的な点は『ポカん?』ですが、ようは別のテーブルを用意してそちらにデータを保存(蓄積?)しておき、あとは条件に添うなどで一気に行ってしまうとか?
は出来ないかなとググってみました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
このQ&Aを見た人はこんなQ&Aも見ています
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
GROUP BYを行った後に結合したい。
Oracle
-
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
-
4
CloseとDisposeの違い
Visual Basic(VBA)
-
5
VBの「As String * 128」とは?
Visual Basic(VBA)
-
6
データベースのINT型項目にNULLはNG?
MySQL
-
7
datetime型でNULL値を入れたい。
SQL Server
-
8
テーブルに主キーを作らないデメリットは?
その他(Microsoft Office)
-
9
PostgreSqlでFunctionの作成について
PostgreSQL
-
10
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
MS Access から PostgreSQL へ...
-
テーブルに存在しない列をselec...
-
複数テーブルにまたがるmax
-
PostgreSQL レコードからアイテ...
-
テーブルを作ろうとしたら。
-
postgreSQL カラムの全ての値を...
-
javaでデータベース上のテーブ...
-
デットロック回避策(autocommit...
-
最新レコードを抽出し外部結合...
-
PostgreSQLのリンクテーブル?...
-
トリガープロシージャのNEW変数...
-
Postgresのデータ領域の拡張に...
-
PostgreSQLの断片化の状況を確...
-
投稿記事と関連付けているテー...
-
レコードを1件のみ取得した後...
-
INSERT,UPDATEしなかったレコー...
-
単純なselectが遅くなるのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLにて指定日付より前、かつ最...
-
単純なselectが遅くなるのです...
-
テーブルに存在しない列をselec...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
Postgresのデータ領域の拡張に...
-
PostgreSQL レコードからアイテ...
-
javaでデータベース上のテーブ...
-
MS Access から PostgreSQL へ...
-
Postgresqlのレポート機能について
-
デットロック回避策(autocommit...
-
異なるデータベースでのINSERT...
-
テーブルにcsvファイルをインポ...
-
VIEWのCOPYってできないんですか?
-
reindex と update のデッドロック
-
UPDATE文の更新順序について
-
テーブルを作ろうとしたら。
-
レコードを1件のみ取得した後...
おすすめ情報