1

過去 4 年間、Mono を実行している 2 台と Windows を実行している 1 台の 3 台のマシンで動作している C# アプリがあります。

最近、クラッシュが発生し、修復中に Windows マシンを更新しました。マシン上のMySqlは5.5.16です

更新を投稿すると、アプリはタイトルに「未処理の例外: MySql.Data.MySqlClient.MySqlException: キー 'PRIMARY' のエントリ 'CC2-2012-04-10-201205' が重複しています」というエラーをスローするようになりました。

  • どのフィールドも自動インクリメントされません
  • DbDataAdapter を使用しています
  • SQLステートメントはUPDATEです
  • すべてのインデックス、テーブル構造、権限などは、すべてのサーバーで同じように見えます
  • テーブルにトリガーはありません
  • テーブルとインデックスを何度も削除して修復しましたが、役に立ちませんでした
  • MyIASM と InnoDB を試しました (最初は InnoDB を使用しました)。

私が見つけた最も近い解決策は、何年も前のバージョンのMySqlエラーでした: http://bugs.mysql.com/bug.php?id=27650 しかし、それはどうやら何年も前に修復されたようです。

次にどこを見ることができるか、誰にもアイデアがありますか?

4

1 に答える 1

0

この問題は、ADO.NET Driver for MySQL (Connector/NET) と MySQL サーバーのバージョン間のバージョンの不一致であることが判明しました。本当に明らかです。

使用していた ADO ドライバーはかなり古いバージョンであることが判明し、その間にいくつかの大きな変更があったに違いありません。

mysql.data.dll をアップグレードするだけですべてが修正されました

編集: 確認しました。非常に古い MySql.Data ADO.NET ドライバー バージョン 1.0.10.1 を使用していました。これは、MySql サーバー 5.1.53 以下で動作しました。(これは、コードがまだ機能していたサーバーの最高バージョンでした)

MySql サーバー バージョン 5.5.24 にアップグレードすると、すべてのアプリが DataAdapter で失敗し始めましたが、レコードが重複していませんでした (レコードがなかった場合)。

于 2012-06-12T02:33:16.693 に答える