0

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 によって生成されたものです。

4

1 に答える 1

0

それを試してください:

ALTER TABLE `MYBASE`.`first_table` 
ADD FOREIGN KEY (`code_indentyfication`)
  REFERENCES `MYBASE`.`second_table` (`codes`);
于 2013-11-02T21:48:49.067 に答える