【问题标题】:phpmyadmin mysql foreign keyphpmyadmin mysql 外键
【发布时间】: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行动;

标签: mysql phpmyadmin foreign-keys


【解决方案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

      【讨论】:

        猜你喜欢
        • 2013-09-07
        • 2015-01-18
        • 2017-06-13
        • 2011-07-25
        • 2014-01-09
        • 1970-01-01
        • 2019-12-31
        • 2018-05-19
        • 1970-01-01
        相关资源
        最近更新 更多