错误1005将在MySQL表的外键约束时
-
26-09-2019 - |
题
升级以南一个Django和MySQL应用时我有一个问题。
我试图使与由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)
任何人是否有一个想法?
更新:默认值,其中失踪,但即使我在Django的模型添加默认=“”,外键的创建失败
感谢您的帮助。
解决方案 3
我最后固定了由于一种解决方法的问题。我的开发机器上的ALTER工程确定,而它无法在主机上。我没有找到的原因,但我成功,使其通过出口工作,迁移我的开发机器上,并重新导入。
其他提示
像你看起来是尝试添加约束带符号/名称已经存在。
ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);
可以更改为:
ALTER TABLE `programmations_concert` ADD FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);
有同样的问题。 最后我发现,在引用表的字段是“无符号”,但在引用表 - 不签名
不隶属于 StackOverflow