主キーで行を更新しようとするSQLクエリを作成する必要があります。存在しない場合は挿入します。このソリューションは、ほとんどのデータベース(MySQL、H2、Postgres、Oracle、DB2、MSSQL、Hsql、Derby)で普遍的である必要があります。 ID(Pr.Key)とあなたがこれを行うには、ストアドプロシージャを使用する必要がtxtの更新するものがない場合に挿入
0
A
答えて
3
あなたはSQLのMERGE
声明をしたいが、それはどこでも動作しません:
MERGE into thetable using (select theid from thetable)
when matched then update thetable thecolumn = thevalue where id = theid
when not matched then insert into thetable blablabla;
他のソリューションがしようと、とにかく挿入し、エラーを処理し、それが制約違反であるかどうかを検出することですそうであれば代わりに更新してください。たぶん
0
:コード例について
は、2つの列からなる単純なテーブルをご検討ください。 参照:http://jumpingbean.co.za/blog/mysql-if-exists-update-else-insert
+2
これはコメントです。 – Oded
+0
もっと具体的に教えてください。たとえば、テーブルがid(Pr.Key)とtxtの2つのカラムで構成されている場合、クエリはどのように見えますか? –
0
:
INSERT INTO table (id,txt) VALUES (1,"Hello")
ON DUPLICATE KEY UPDATE txt="World";
しかし、これはMySQLが唯一
関連する問題
- 1. MYSQL、挿入/更新、else文の場合
- 2. mySqlに、更新が失敗した場合に挿入する更新/挿入コンボがありますか?
- 3. C# - CRMに挿入または更新がある場合
- 4. 複数の行に挿入しない場合の結合更新
- 5. 行が存在しない場合は、更新の代わりに挿入
- 6. エンティティフレームワークデータが存在する場合は挿入または更新
- 7. 条件の場合に挿入または更新する
- 8. 挿入されていない場合は、レコードが更新されます
- 9. MongoDB atomic "findOrCreate":findOne、存在しない場合は挿入しますが、更新しない場合
- 10. SQL更新が存在する場合は、存在しない場合は挿入してください。
- 11. レジスタが存在する場合は更新し、そうでない場合は挿入します。 MYSQL
- 12. EFコードファースト - 挿入または更新。テーブルが存在しない場合のエラー
- 13. MySQL - 存在する場合は更新するがそれ以外の場合は挿入しない - 最も効果的な方法を実行する
- 14. 値がない場合、挿入値
- 15. レコードが存在する場合、他の更新を挿入します。
- 16. Informixテーブルに挿入するか、存在する場合は更新する
- 17. MVC4 EF親が挿入されていない場合、子がある場合
- 18. データが存在する場合、更新する方法新しいデータを挿入する(複数行)
- 19. 特定の列に特定の値が存在する場合はレコードを更新し、そうでなければ新しいものを挿入します。
- 20. MongoDB bulk operator、挿入されていない場合は挿入
- 21. 異なる場合でUIの更新が異なる場合
- 22. PostgreSQLの "IF EXISTS" - レコードが存在する場合にレコードを更新するクエリを作成していない場合に挿入します。
- 23. sqlの挿入ステートメントが動作しない場合がある
- 24. 挿入または更新済み= 111をEMPLOYEE_ID場合
- 25. ローが挿入されていない場合の挿入方法
- 26. いくつかの特定のものが存在する場合は更新し、それ以外の場合は挿入します
- 27. アンドロイドアプリがバックグラウンドの場合でも場所を更新します
- 28. SQL Server 2005のユニークなインデックスステージングテーブルから挿入する場所がない場合
- 29. 更新フィールドがNULLでない場合
- 30. 更新サイト - アクティビティがない場合
このため名前は 'UPSERT'です。これは一般に 'MERGE'で達成されますが、これは決して普遍的に利用可能ではありません。あなたは「ほとんどのデータベース」についてより具体的になりますか? –
@Oded何もありません。 –
@MartinSmith私はMySQLで 'REPLACE'ステートメントを知っていますが、これは私が望むだけですが、MySQLでしか動作しないので、ローカルソリューションは適合しません。 –