私は2つの列を持つ名前のテーブルを持ってい"label"ます:
_LABEL_ID (varchar)
_LENGTH   (varchar)
このテーブルには既にデータが含まれています。
そして、他にもいくつかのテーブル"a", "b", "c",などがあります。
これらのテーブルには列_LABEL_ID(varchar) があります。これらのテーブルは空ではありません
テーブルから行を削除するとa, b, c,、そのラベルが " label" テーブルから削除されます。labelこれを行うためにテーブルを参照する" " に外部キーを追加しようとしましたが"a"(テストするためだけに)、この質問のように同じエラーが発生しました:
私の場合InnoDB、すべてのテーブル、一意の名前 FK、同じデータ型のエンジンがあります。
行をエクスポートしてからテーブルlabelを空にし、labelテーブルを参照する外部キーをテーブルに追加すると、"a"問題なく動作します。行をテーブルに再度インポートするlabelと、外部キーを追加しようとしたときに発生したのと同じエラーが発生します。
tableの行はlabel異なるテーブル (a、b、c、..etc) に属しています。これがエラーの原因ですか?
私はMySQL Workbenchを使用してこれを行います
編集: 実際の SQL ステートメントとエラー メッセージ:
ALTER TABLE `cal_view_db`.`dbo_pub_label` 
  ADD CONSTRAINT `fk_dbo_pub_label_treenode`
  FOREIGN KEY (`_LABEL_ID` )
  REFERENCES `cal_view_db`.`dbo_system_treenode` (`_NAME_ID` )
  ON DELETE CASCADE
  ON UPDATE NO ACTION
, ADD INDEX `fk_dbo_pub_label_treenode_idx` (`_LABEL_ID` ASC) ;
エラーメッセージ:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`cal_view_db`.`#sql-10cc_4a`, CONSTRAINT `fk_dbo_pub_label_treenode` FOREIGN KEY (`_LABEL_ID`) REFERENCES `dbo_system_treenode` (`_NAME_ID`) ON DELETE CASCADE ON UPDATE NO ACTION)
SQL Statement:
ALTER TABLE `cal_view_db`.`dbo_pub_label` 
  ADD CONSTRAINT `fk_dbo_pub_label_treenode`
  FOREIGN KEY (`_LABEL_ID` )
  REFERENCES `cal_view_db`.`dbo_system_treenode` (`_NAME_ID` )
  ON DELETE CASCADE
  ON UPDATE NO ACTION
, ADD INDEX `fk_dbo_pub_label_treenode_idx` (`_LABEL_ID` ASC)
ERROR: Error when running failback script. Details follow.
ERROR 1046: No database selected
SQL Statement:
CREATE TABLE `dbo_pub_label` (
  `_LABEL_ID` varchar(45) NOT NULL,
  `_LENGTH` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`_LABEL_ID`),
  KEY `fk_dbo_pub_label_1_idx` (`_LABEL_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
どうもありがとう
ps: 下手な英語でごめんなさい!