【问题标题】:Unable to add foregin key in sql无法在sql中添加外键
【发布时间】:2017-09-20 09:58:13
【问题描述】:

我想向表中添加外键约束,但收到以下错误消息:

1452 - 无法添加或更新子行:外键约束 失败 t.#sql-156c_26f,约束 fk_gt_sub 外键 (package_category_id) REFERENCES gt_main (category_id))

查询:

ALTER TABLE gt_sub ADD CONSTRAINT fk_gt_sub FOREIGN KEY (package_category_id) REFERENCES gt_main(category_id)

【问题讨论】:

    标签: mysql


    【解决方案1】:

    这是因为表 gt_subcategory_id 中存在其他表 gt_main 中不存在的行。

    创建您尝试添加的外键是为了防止插入这些类型的行,这就是它无法创建外键的原因。

    您可以查询这些行,然后将其删除以解决问题:

    SELECT *
    FROM gt_sub
    WHERE package_category_id NOT IN(SELECT category_id from gt_main)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多