プロジェクトでカスケードを使用して、特定のプロセスを簡素化したいと考えています。これら 2 つのクエリとさらにいくつかのクエリを作成しましたが、実行時にすべての子テーブルで同じエラーがスローされます。エンジンとして使用したときは機能しましたMyISAM
が、さらにテストと調査を行った結果、カスケードをサポートしていないことが判明したため、InnoDB
これらのエラーをトリガーしたエンジンに切り替えました。同じ問題を抱えたいくつかのフォーラムとスレッドを見てきましたが、実際の問題がどこにあるのかわかりません。誰か助けてくれませんか?
親テーブル:
CREATE TABLE IF NOT EXISTS `branches` ( `branch_id` int(11) NOT NULL AUTO_INCREMENT, `key` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `short_name` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `city` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `timezone` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, UNIQUE(`key`), PRIMARY KEY (`branch_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
子テーブル:
CREATE TABLE IF NOT EXISTS `files` ( `file_id` int(11) NOT NULL AUTO_INCREMENT, `branch_id` int(11) NOT NULL, `path` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `use_google_analytics` BOOLEAN NOT NULL, FOREIGN KEY(`branch_id`) REFERENCES `branches`(`branch_id`) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY (`file_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
エラー:
1005: Can't create table 'files' (errno: 150)