1

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

我正在重命名表、更改索引并通常以某种方式更改大部分表,其中一部分是我正在从 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

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

这些表都转换为 InnoDB 很好,所以我很难理解为什么它在创建新表时会出现问题。如果我取出 InnoDB 部分,则此查询有效。

有什么建议么?

4

2 回答 2

1

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

于 2009-03-30T20:05:22.667 回答
1

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

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

另一种处理此问题的方法在Bug 17546的末尾进行了描述,但您应该验证问题出在 frm 文件上。

于 2009-03-30T20:09:54.183 回答