所以我太习惯使用教义了,以至于忘记了考试时需要的标准 mysql 语法。
我想创建一个名为“youtube”的测试数据库
包含 app_users
表和 app_videos
表。
在“现实生活”中,这将是一个一对多的关系,但我需要 研究创建多对多关系。
所以它 “许多 app_users” -> 有“许多 app_videos” 反之亦然。
所以首先我创建了一个数据库;
CREATE DATABASE youtube;
use youtube;
然后我创建了用户和视频表
CREATE TABLE app_users(
id INT AUTO_INCREMENT,
username VARCHAR(20),
password VARCHAR(40),
first_name VARCHAR(20),
last_name VARCHAR(20),
video_id INT,
PRIMARY KEY(id)
);
CREATE TABLE app_videos(
id INT AUTO_INCREMENT,
video_path VARCHAR(20),
description VARCHAR(20),
likes INT(20),
dislikes INT(20),
user_id INT,
PRIMARY KEY(id)
);
然后我创建了一个关系表
CREATE TABLE vid_uid
(
id INT AUTO_INCREMENT,
video_id INT,
user_id INT,
PRIMARY KEY(id)
);
现在我需要做的是以某种方式将列相互连接,但我的语法永远不起作用
我知道我需要改变这个
ALTER TABLE app_users
ADD FOREIGN KEY(video_id)
REFERENCES app_videos(video_id);
一些有用的东西:/
最佳答案
您需要将 app_videos(video_id) 更改为 app_videos(id)。此外,您还想更改表 vid_uid (不是 app_users),因为这是引用外部键的表:
ALTER TABLE vid_uid
ADD FOREIGN KEY(video_id)
REFERENCES app_videos(id);
您还需要执行以下操作:
ALTER TABLE vid_uid
ADD FOREIGN KEY(user_id)
REFERENCES app_users(id);
关于mysql - 需要帮助使用 mysql 创建简单的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28257084/