2 つのテーブルを取得しました。1 つ目は一部の人々のデータを含み、2 つ目はいくつかのコードを含みます。私がやりたいことは、FK を設定して DB を作成し、新しい個人データに 2 番目のテーブルのリストから「コード」が含まれているかどうかを確認することです。両方のテーブルのコード列で PK を取得しましたが、それでもエラーが発生します。
ERROR 1215: Cannot add foreign key constraint
SQL Statement:
ALTER TABLE `MYBASE`.`first_table`
ADD CONSTRAINT `fk_new_fkey`
FOREIGN KEY (`code_indentyfication`)
REFERENCES `MYBASE`.`second_table` (`codes`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ERROR: Error when running failback script. Details follow.
ERROR 1050: Table 'first_table' already exists
SQL Statement:
CREATE TABLE `first_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code_indentyfication` varchar(2) COLLATE utf8_polish_ci NOT NULL,
`number_identyfication` varchar(45) COLLATE utf8_polish_ci NOT NULL,
`name` varchar(45) COLLATE utf8_polish_ci DEFAULT NULL,
`surname` varchar(45) COLLATE utf8_polish_ci DEFAULT NULL,
`adress` varchar(45) COLLATE utf8_polish_ci DEFAULT NULL,
PRIMARY KEY (`id`,`code_indentyfication`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci
コードは varchar(2) で、列セットを変更せずに FK を設定したいと思います。何か案は?私は MySQL サーバーを使用していますが、このコードは MySQL Workbench によって生成されたものです。