【问题标题】:Implement Foreign Key in mysql table在mysql表中实现外键
【发布时间】:2013-08-30 21:02:00
【问题描述】:

我试图恢复一些旧的数据库表,当我构建它们时我没有使用外键。我有对应外键的字段,但我没有在关系表中设置它连接到哪个表。

知道我有问题,因为如果我尝试添加该关系,它不能,因为在另一个表中删除了一些行。

是否有任何 mysql 命令用于检查这种类型的 NULL 关系,以便我删除我不需要的行.. 最后.. 添加关系。

表A ID, 姓名 表B ID, 表A_id, 积分

我已经删除了一些 TableA 行.. 现在我无法建立这种关系。

有什么mysql命令可以帮忙,还是需要手动检查?

谢谢

【问题讨论】:

    标签: mysql sql foreign-key-relationship


    【解决方案1】:

    假设您至少在TableA.id 上有PRIMARY KEY 约束,您可以尝试

    -- Delete all orphaned records from TableB
    DELETE b
      FROM tableb b LEFT JOIN tablea a
        ON b.a_id = a.id
     WHERE a.id IS NULL;
    -- Create a FK constraint 
    ALTER TABLE TableB 
    ADD CONSTRAINT fk_a_id FOREIGN KEY (a_id) REFERENCES tablea(id);
    

    这里是SQLFiddle演示

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-12
      • 2013-05-27
      • 2012-12-04
      • 2014-02-20
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多