【发布时间】:2012-05-01 10:47:17
【问题描述】:
我们有一个 C# 应用程序在过去 4 年中一直在三台机器上运行,其中 2 台运行 Mono,1 台成功运行 Windows。
最近,我们在修复时遇到了崩溃并更新了 Windows 机器。本机MySql是5.5.16
发布更新后,应用程序现在在标题“未处理的异常:MySql.Data.MySqlClient.MySqlException: Duplicate entry 'CC2-2012-04-10-201205' for key 'PRIMARY'”中抛出错误
- 没有一个字段是自动递增的
- 我们正在使用 DbDataAdapter
- sql 语句是 UPDATE
- 所有服务器的所有索引、表结构、权限等似乎都相同
- 表上没有触发器
- 我们一遍又一遍地删除和修复表和索引,但无济于事
- 我们尝试过 MyIASM 和 InnoDB(我们最初使用 InnoDB)
我不知道更新语句如何因重复键而失败,关于我发现的最接近的解决方案是很多很多版本之前的 MySql 错误: http://bugs.mysql.com/bug.php?id=27650 但这显然是多年前修复的。
任何人有什么想法可以让我看看下一步吗?
【问题讨论】:
-
更新语句如何因重复键而失败?
insert into T id,val values (1,1), (2,2)然后update T set id=2 where id=1,将T.id作为 pkey。 -
如果我理解正确,该应用程序仍然可以在 2 台装有旧版本 MySQL 的 Mono 机器上按预期运行。您提出问题的方式表明您认为升级是罪魁祸首。是否有机会在 Windows 机器上回滚 MySQL 升级;或者只升级其中一台 Mono 机器,看看是否可以在那里重现问题?
-
我已经要求有权访问机器的人尝试回滚。我怀疑 SQL 的版本实际上有一个错误,否则其他人会看到它......很可能我们在设置上搞砸了一些东西,但我想不出是什么