【问题标题】:MySQL alter two column for same foreign keyMySQL为相同的外键更改两列
【发布时间】:2019-10-28 23:18:42
【问题描述】:

我有一个名为user 的表,主键是user_id

我有另一个名为follows 的表。该表用于存储哪个用户关注哪个用户(类似于 twitter 关注功能)。

这是我的跟随表。

CREATE TABLE `follows` (
  `id` int(11) NOT NULL,
  `orginal_user_id` int(11) NOT NULL,
  `follow_user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `follows`
  ADD PRIMARY KEY (`id`);

那么,我如何更改此表以将orginal_user_idfollow_user_id 设置为用户表的user_id 的外键...

如果从用户表中删除了一个用户,我想自动删除后续表中的行,该用户 ID 出现在 orginal_user_id 列或 follow_user_id 列上。

【问题讨论】:

    标签: mysql sql foreign-keys alter-table alter


    【解决方案1】:

    您可以在表中使用级联删除约束:

    CREATE TABLE follows (
        id int(11) NOT NULL PRIMARY KEY,
        orginal_user_id int(11) NOT NULL,
        follow_user_id  int(11) NOT NULL,
        CONSTRAINT fk_original_user FOREIGN KEY (orginal_user_id)
            REFERENCES user(id) ON DELETE CASCADE,
        CONSTRAINT fk_follow_user FOREIGN KEY (follow_user_id)
            REFERENCES user(id) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    

    【讨论】:

      猜你喜欢
      • 2017-11-27
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多