タグ付けされた質問 「sql-merge」

16
挿入、PostgreSQLの重複更新時?
数か月前に、次の構文を使用してMySQLで複数の更新を一度に実行する方法をStack Overflowの回答から学びました。 INSERT INTO table (id, field, field2) VALUES (1, A, X), (2, B, Y), (3, C, Z) ON DUPLICATE KEY UPDATE field=VALUES(Col1), field2=VALUES(Col2); これでPostgreSQLに切り替えましたが、明らかにこれは正しくありません。それはすべての正しいテーブルを参照しているので、使用されているさまざまなキーワードの問題であると思いますが、PostgreSQLのドキュメントのどこでこれがカバーされているのかわかりません。 明確にするために、いくつかのものを挿入し、それらがすでに存在する場合はそれらを更新します。

6
PostgreSQLでUPSERT(マージ、挿入…重複更新時)する方法
ここで非常によく寄せられる質問は、MySQLが呼び出しINSERT ... ON DUPLICATE UPDATE、標準がMERGE操作の一部としてサポートする、アップサートの実行方法です。 PostgreSQLがそれを直接サポートしていないことを考えると(pg 9.5より前)、これをどのように行いますか?以下を検討してください。 CREATE TABLE testtable ( id integer PRIMARY KEY, somedata text NOT NULL ); INSERT INTO testtable (id, somedata) VALUES (1, 'fred'), (2, 'bob'); 今、あなたは「アップサート」にタプルをしたいことを想像し(2, 'Joe')、(3, 'Alan')新しいテーブルの内容は次のようになりので、: (1, 'fred'), (2, 'Joe'), -- Changed value of existing tuple (3, 'Alan') -- Added new tuple それは人々が議論するときに話していることupsertです。重要なのは、明示的なロックを使用するか、結果として生じる競合状態から防御することによって、同じテーブルで作業する複数のトランザクションが存在する場合でも、どのようなアプローチも安全でなければならないことです。 …

6
ORA-30926:ソース表の安定した行セットを取得できません
私は得ています ORA-30926:ソース表の安定した行セットを取得できません 次のクエリで: MERGE INTO table_1 a USING (SELECT a.ROWID row_id, 'Y' FROM table_1 a ,table_2 b ,table_3 c WHERE a.mbr = c.mbr AND b.head = c.head AND b.type_of_action <> '6') src ON ( a.ROWID = src.row_id ) WHEN MATCHED THEN UPDATE SET in_correct = 'Y'; 私はtable_1それがデータを持っていることを実行しました、そして私はまたデータを持っている内部クエリ(src)を実行しました。 なぜこのエラーが発生し、どのように解決できますか?
129 oracle  sql-merge 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.