У меня есть программа на C #, которая пытается вставить данные в базу данных MySQL.Данные могут уже находиться в базе данных, и в этом случае они просто перезаписывают их.Пример:
MySqlConection dbConnection = ...; // Setup connection
int numCustomersToUpdate = 3;
String query =
"INSERT INTO customer_regions (customer_id, region_id)
VALUES (1, 205), (2, 314), (3, 151) // 3 customers
ON DUPLICATE KEY UPDATE region_id = VALUES(region_id)";
MySqlCommand cmd = new MySqlCommand(query, dbConnection);
int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected == numCustomersToUpdate)
{
// Data either did not exist before and was inserted,
// or already existed and overwritten
}
else
{
// Error inserting data
}
Проблема в том, что если данные были перезаписаны, rowsAffected
равно 0, что считается ошибкой.Как я могу считать это успешным выполнением SQL независимо от того, были ли данные вставлены или перезаписаны?