InnoDb在某些时候工作但不在其他工作

时间:2009-03-30 20:02:31

标签: mysql innodb

我正在交换数据库以重写我的程序,其中一部分是编写转换脚本和脚本来创建新表。

我正在重命名表,更改索引并通常以某种方式更改大部分表,其中一部分是我正在从MyISAM更改为InnoDB表。

转换脚本完美无缺,但创建新表的脚本会在特定点落后。

Query:
create table team_resources
(
     amount double not null default 0,
     resource int unsigned not null default 0,
     team int unsigned not null default 0,
     primary key (resource,team)
) ENGINE = InnoDB

我得到error 121,这是无法创建表时给出的错误。该脚本是从Python文件运行的,但是在我的SQL程序和phpMyAdmin中,在原始脚本和表向导帮助器形式中都出现了相同的错误。

这些表都转换为InnoDB就好了,所以我很难过为什么它会产生新的问题。如果我取出InnoDB部分,则此查询有效。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我能够在MySQL 5.0.32安装上运行该语句。它可能是一个已修复的错误。

答案 1 :(得分:1)

Bug 26507对此有所了解。看起来创建/删除表并不是原子。

一个选项是执行mysqldump并尝试加载到新安装的数据库中。

Bug 17546的末尾描述了处理此问题的另一种方法,但您应该验证问题是否与frm文件有关。