2016-03-08 125 views
2

以下聲明有什麼問題?MariaDB:添加FOREIGN KEY的ALTER TABLE語法?

ALTER TABLE submittedForecast 
    ADD CONSTRAINT FOREIGN KEY (data) REFERENCES blobs (id); 

我得到的錯誤信息是

Can't create table `fcdemo`.`#sql-664_b` (errno: 150 "Foreign key constraint is incorrectly formed") 
+0

請注意,數據類型,表定義順序等可能導致錯誤150。 –

回答

2

這對我的作品在MariaDB的10.1.8:

CREATE TABLE `submittedforecast` (
    `id` INT(11) NOT NULL, 
    `data` INT(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    INDEX `data` (`data`) 
) ENGINE=InnoDB;  
CREATE TABLE `blobs` (
    `id` INT(11) NOT NULL, 
    `content` BLOB NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB; 
ALTER TABLE submittedForecast 
    ADD CONSTRAINT FOREIGN KEY (data) REFERENCES blobs (id); 

你可以給你MariaDB的版本號和一個完整的例子包括submittedForecastblobs的報表CREATE TABLE

0

不知道你是否已經解決了這個問題,但要確保引擎和排序規則在表格之間匹配(例如:latin1到latin1和InnoDB到InnoDB)。

我有同樣的問題,並通過切換這些我設法得到它的工作。