ERROR 1005(HY000)第156行:无法创建表'db1.testtable'(错误号:121)

时间:2011-10-13 09:02:44

标签: mysqldump

我正在从mysqldump文件恢复所有数据库,并收到以下错误:

ERROR 1005 (HY000) at line 156: Can't create table 'db1.testtable' (errno: 121)

由于我的SQL是从mysqldump实用程序创建的,所以我很困惑SQL代码中出现了错误!

我的dump.sql中的相关行是:

CREATE TABLE `testtable` (
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `emailaddress` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

谢谢,吉姆

1 个答案:

答案 0 :(得分:8)

errno 121表示重复键错误。可能该表已经存在于InnoDB内部数据字典中,尽管该表的.frm文件已被删除。这是在表创建中获取errno 121的最常见原因。另一个可能的原因是外键约束名称中的名称冲突。约束名称在数据库中必须是唯一的,如表名称。

InnoDB在.err日志中打印什么?