我在升级django和mysql应用程序时出现问题。在mysql表中添加外键约束时出现错误1005
我试着用django sqlall命令生成的代码进行基于sql的升级,我也有类似的问题。
下面是SQL代码:
CREATE TABLE `programmations_basissupport` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`value` numeric(6, 0) NOT NULL
)
ALTER TABLE `programmations_concert` ADD `basis_support_id` integer AFTER program_status_id;
ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);
添加FK约束时引发错误:
ERROR 1005 (HY000): Can't create table 'apidev_mnl.#sql-106e_632b00a' (errno: 150)
没有任何人有一个想法?
更新:DEFAULT值在哪里丢失,但即使我在django模型中添加default ='',创建外键失败。
感谢您的帮助
退房这个职位 - http://stackoverflow.com/questions/34579/mysql-error-1005-when-adding-tables – 0x2D9A3 2010-05-12 11:52:28
感谢。我想过类型不匹配,但都是整数(11)。 SHOW ENGINE INNODB STATUS返回一个错误'拒绝访问:您需要此操作的PROCESS权限' – luc 2010-05-12 12:17:30
您需要运行SHOW ENGINE INNODB STATUS作为更具特权的帐户,例如root用户,否则将PROCESS权限授予您正在使用的帐户。 – 2010-05-12 15:11:54