7

データベースエントリを更新または作成するSQLクエリが必要でした(特定の顧客がまだ存在しない場合)。私はインターネットで現在の解決策を見つけました:

command.CommandText = "REPLACE INTO [Resource_Tracer].[dbo].[Customer](CustomerName, CustomerID) VALUES (@CustomerName, @CustomerID)"

あまり使用されておらず、実際に聞いたことがないので、これは本当に私が望む解決策ですか、それとも手動で行う必要がありますか?

4

2 に答える 2

5

両方REPLACE INTOと提案されたON DUPLICATE KEY代替案は、MySQLバリアントの非標準SQLです。したがって、それを使用するかどうかは、a)MySQlを使用しているかどうか、およびb)そのバリアントに関連付けたいかどうかによって異なります。

ANSI SQLは、MERGEプラットフォームに実装されている場合、より標準的な構文を定義します

于 2012-07-11T08:27:04.020 に答える
4

使用するのがより一般的です

INSERT INTO table col1) VALUES (1)
ON DUPLICATE KEY UPDATE col1=VALUES(Col1)

replace into実際に重複するエントリを削除し、新しいエントリを挿入します。

于 2012-07-11T08:20:54.303 に答える