mysql - SQL外键添加问题

标签 mysql sql foreign-keys

我有两个表,第一个表包含一些人的数据,第二个表包含一些代码。 我想要做的是设置 FK 以使 DB 检查新人员数据是否包含第二个表列表中的“代码”。两个表都在代码列上获得了 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 生成的。

最佳答案

尝试一下:

ALTER TABLE `MYBASE`.`first_table` 
ADD FOREIGN KEY (`code_indentyfication`)
  REFERENCES `MYBASE`.`second_table` (`codes`);

关于mysql - SQL外键添加问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19745245/

相关文章:

python - 无法从 Django sqlite3 数据库中删除项目,错误为 "foreign key constraint failed"

javascript - 如何使用 PHP 和 MySQL 创建多个 javascript 模式框?

php - 倒计时器与php mysql交互

php - 如何在 SQL、Codeigniter 中的一个查询中设置不同的限制不同列?

SQL Server 2008 内存瓶颈

SQL Oracle 查询来比较公司每项工作的男性与女性薪资

Php session ,根据用户级别问题重定向

mysql - 如何替换sql数据库中的单词

mysql - MySQL推断随机查询的外键关系

Django 模型 : how to overcome 'through' ManyToMany option limitation