2017-06-01 6 views
-1

テーブルへの挿入操作を実行したいが、重複したキーが見つかった場合は、特定の列の更新を行う必要があるため、重複したキーのSQL関数を使用し、エラー:ここ重複したキー構文エラー

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'duplicated key undate timeout ='0'+'2'' at line 1

が私のコードです:

query = "insert into regrouper values('" + nummach + "','" + numpan + "','" + date.ToString(format) + "','" + timeout + "') on duplicated key undate timeout ='"+oldtime+"'+'"+timeout+"'"; 

commandDatabase = new MySqlCommand(query, databaseConnection); 
MySqlDataReader myReader4 = commandDatabase.ExecuteReader(); 
+2

「重複キー更新」ではなく「重複キー更新」である。しかし、クエリ文字列を変更するのではなく、パラメータ化されたクエリを使用する必要があります。 –

+1

SQLの質問があるときは、構文が異なるため、使用しているSQLのバージョン(SQL Server?MySQL?Oracle?PostgreSQL?)を教えてください。 –

+0

ok、ご協力いただきありがとうございます –

答えて

0

私はそのちょうど綴りの間違い... 書き込み "更新" だと思うの代わりundate のSee Examples

query = "insert into regrouper values('" + nummach + "','" + numpan + "','" + date.ToString(format) + "','" + timeout + "') on duplicated key update timeout ='"+oldtime+"'+'"+timeout+"'"; 

    commandDatabase = new MySqlCommand(query, databaseConnection); 
    MySqlDataReader myReader4 = commandDatabase.ExecuteReader(); 
+0

重複して重複して修正して更新した後、それはあなたを –

0

あなたのスペルを確認してください。また、文字列の連結にはstring.Formatを使用することをお勧めします。

query = string.Format(
     "insert into regrouper values('{0}','{1}','{2}','{3}') on duplicate key update timeout ='{4}'+'{3}'", 
     nummach, numpan, date.ToString(format), timeout); 
関連する問題