我在升級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