【发布时间】:2011-02-18 14:14:22
【问题描述】:
我在使用南升级 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`);
添加外键约束时报错:
ERROR 1005 (HY000): Can't create table 'apidev_mnl.#sql-106e_632b00a' (errno: 150)
有人有想法吗?
更新:缺少默认值,但即使我在 django 模型中添加 default='',外键的创建也会失败。
感谢您的帮助
【问题讨论】:
-
谢谢。我考虑过类型不匹配,但两者都是整数(11)。 SHOW ENGINE INNODB STATUS 返回错误“拒绝访问:您需要此操作的 PROCESS 权限”
-
您需要以更高权限的帐户运行 SHOW ENGINE INNODB STATUS,例如 root mysql 用户,或者将 PROCESS 权限授予您正在使用的帐户。
-
我的主机提供商不允许访问此命令。有什么选择吗?
标签: mysql django foreign-keys mysql-error-1005