タグ付けされた質問 「insert-update」

11
MySQLテーブルに挿入するか、存在する場合は更新します
行をデータベーステーブルに追加したいのですが、同じ一意のキーを持つ行が存在する場合、その行を更新します。 例えば: insert into table (id, name, age) values(1, "A", 19) 一意のキーがidで、データベースにの行があるとしid = 1ます。その場合、その行をこれらの値で更新します。通常、これはエラーになります。 使用insert IGNOREするとエラーは無視されますが、それでも更新されません。

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です。重要なのは、明示的なロックを使用するか、結果として生じる競合状態から防御することによって、同じテーブルで作業する複数のトランザクションが存在する場合でも、どのようなアプローチも安全でなければならないことです。 …


7
存在しない場合のSQL Server挿入のベストプラクティス
チームメンバーの名前とそれらのランキングを一方Competitionsで保持する結果テーブルがあります。 一方、私はユニークな競合他社の名前の表を維持する必要があります: CREATE TABLE Competitors (cName nvarchar(64) primary key) これで、最初のテーブルに約200,000件の結果が表示されました。競合他社のテーブルが空の場合、これを実行できます。 INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults また、クエリは約11,000の名前を挿入するのにわずか5秒しかかかりません。 これまでのところ、これは重要なアプリケーションではないので、月に1回、約10,000行の新しい競争結果を受け取ったら、競合他社テーブルを切り捨てることを検討できます。 しかし、新しい結果が追加されたときに、新しい競合他社と既存の競合他社がある場合のベストプラクティスは何ですか?既存の競合他社のテーブルを切り捨てたくない 新規の競合他社に対してのみINSERTステートメントを実行する必要があり、存在する場合は何もしません。

2
…に挿入…重複するキーの更新時に…から選択
一意のキーが既に存在する場合、多くの列のほとんどを新しい値に更新する必要がある挿入クエリを実行しています。それはこのようなものになります: INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE ...; …

2
`INSERT…ON DUPLICATE KEY UPDATE`で2行が影響を受けるのはなぜですか?
私がやっているINSERT ... ON DUPLICATE KEY UPDATEためにPRIMARY KEY、次の表に: DESCRIBE users_interests; +------------+---------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------------------+------+-----+---------+-------+ | uid | int(11) | NO | PRI | NULL | | | iid | int(11) | NO | PRI | NULL | | | preference …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.