MySQL 为同一个外键更改两列

MySQL alter two column for same foreign key

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

我还有另一个 table 叫 follows。 table 用于存储哪个用户关注了哪个用户(类似于推特关注功能)。

这是我的关注table。

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`);

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

如果从用户 table 中删除一个用户,我想自动删除以下行 table 该用户 ID 出现在 orginal_user_id 列或 follow_user_id 列。

您可以在 table:

中使用级联删除约束
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;