2017-10-28 119 views
0

我試圖在MySQL集羣中創建表。但在執行下面的查詢時發生錯誤。在mysql集羣中創建表時出錯

CREATE TABLE `tbl_anal_results` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `tbl_bill_bill_id` int(10) unsigned NOT NULL, 
    `item` varchar(256) NOT NULL, 
    `bill_value` decimal(10,2) NOT NULL, 
    `calc_value` decimal(10,2) NOT NULL, 
    `err` tinyint(1) NOT NULL, 
    `error_code` varchar(256) DEFAULT NULL, 
    `tbl_bill_info_id` int(10) unsigned DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `fk_tbl_anal_results_tbl_bill1_idx` (`tbl_bill_bill_id`), 
    CONSTRAINT `fk_tbl_anal_results_tbl_bill1` FOREIGN KEY (`tbl_bill_bill_id`) REFERENCES `tbl_bill` (`bill_id`) ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE=ndbcluster AUTO_INCREMENT=16570225 DEFAULT CHARSET=latin1; 

ERROR 1215(HY000):無法添加外鍵約束

我用我用它來創建在舊版本的MySQL安裝相同的表相同的查詢。 並且我已經更改ENGINE作爲ENGINE = ndbcluster而不是ENGINE = InnoDB

也注意到UPDATE CASCADE在mysql集羣中不起作用。

+2

錯誤似乎很明顯。 –

+0

我已經將ENGINE作爲ENGINE = ndbcluster而不是ENGINE = InnoDB – lfreez

回答

0

從文檔中刪除: ON UPDATE當引用父表的主鍵時,不支持CASCADE。

這是因爲主鍵的更新實現爲刪除舊行(包含舊主鍵)以及插入新行(帶有新主鍵)。這對NDB內核是不可見的,NDB內核將這兩行看作是相同的,因此無法知道這個更新應該級聯。