phpmyadmin mysql 外键

Posted

技术标签:

【中文标题】phpmyadmin mysql 外键【英文标题】:phpmyadmin mysql foreign key 【发布时间】:2014-12-03 07:42:55 【问题描述】:

phpmyadmin 版本:4.1.14

数据库引擎:InnoDB

索引已设置:

ALTER TABLE `tbl_name` ADD INDEX( `user_id`);

我的查询:

ALTER TABLE `tbl_name` ADD  FOREIGN KEY (`user_id`) REFERENCES `<db_name>`.`user`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;

但我仍然有错误:

#1215 - Impossible d'ajouter des contraintes d'index externe

mysql 文档中出现此错误:

Erreur: 1215 SQLSTATE: HY000 (ER_CANNOT_ADD_FOREIGN)

出了什么问题,我必须做些什么来解决这个问题? 也许我忘记了 phpmyadmin 设置中的某些内容?

【问题讨论】:

您是否真的试图将&lt;db_name&gt;.user 指定为目标表的名称? 不,它只是占位符,查询类似于:ALTER TABLE postADD FOREIGN KEY (user_id) REFERENCES alicelf_engine.user(id) ON DELETE CASCADE ON UPDATE NO行动; 【参考方案1】:

问题解决了, 我将 UNSIGNED 添加到索引列(对于 user_id )

`user_id` INT UNSIGNED NOT NULL ,

我认为,具有关系的字段必须具有相同的属性

【讨论】:

【参考方案2】:

如果在用户表id主键数据类型INT 然后在 post 表中 user_id 外键数据类型应该是 INT NOT NULL

【讨论】:

【参考方案3】:

对我来说是我在父表和子表的行中使用了不同的类型

我在child_table_key_id 中使用了Int,在id 中使用了BigInt

【讨论】:

以上是关于phpmyadmin mysql 外键的主要内容,如果未能解决你的问题,请参考以下文章

phpmyadmin mysql 外键

如何在 MySQL 和 phpMyAdmin 的两个不同数据库中定义外键

是否可以从 phpMyAdmin 导出选择性记录?

新 phpmyadmin 中的外键

phpMyAdmin 外键下拉字段值

在 phpMyAdmin 中消失的外键