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_id
和 follow_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;
我有一个名为 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_id
和 follow_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;