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 设置中的某些内容?
【问题讨论】:
您是否真的试图将<db_name>
.user
指定为目标表的名称?
不,它只是占位符,查询类似于:ALTER TABLE post
ADD 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 外键的主要内容,如果未能解决你的问题,请参考以下文章