2017-10-28 9 views
0

MySQL Clusterでテーブルを作成しようとしています。以下のクエリを実行中にエラーが発生しました。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 = InnoDBの代わりにENGINE = ndbclusterに変更しました

また、mysqlクラスタではUPDATE CASCADEが動作していません。

+2

エラーはかなり明白です。 –

+0

ENGINE = ENGINE = InnoDBではなくENGINE = ndbclusterに変更しました – lfreez

答えて

0

docsからの切り取り: ON UPDATE CASCADEは、親テーブルの主キーへの参照がサポートされていません。

これは、主キーの更新が、古い行(古い主キーを含む)と新しい行の挿入(新しい主キーを含む)として実装されているためです。これはNDBカーネルには見えません.NDBカーネルは、これらの2つの行を同じものとして見ており、この更新をカスケードする必要があることを知る方法がありません。

関連する問題