次のエラーメッセージが表示されます。
エラー1217(23000)、40行目:親行を削除または更新できません:外部キー制約が失敗します
...テーブルを削除しようとすると:
DROP TABLE IF EXISTS `area`;
...このように定義されます:
CREATE TABLE `area` (
`area_id` char(3) COLLATE utf8_spanish_ci NOT NULL,
`nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
`descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`area_id`),
UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
おもしろいのは、外部キーを持つスキーマの他のすべてのテーブルをすでに削除したことarea
です。実際には、データベースはarea
テーブルを除いて空です。
データベースに他のオブジェクトがない場合、どうすれば子行を持つことができますか?私の知る限り、InnoDBは他のスキーマの外部キーを許可していませんか?
(RENAME TABLE area TO something_else
コマンドを実行することもできます:-?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
にです。つまり、テーブル参照にスキーマ名がありません:-?