欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 創建表時多個外鍵

劉姿婷2年前14瀏覽0評論

MySQL 非常方便地支持多個表之間的關聯操作。我們可以使用外鍵將多個表相連接,以實現更高效的數據管理。本文將講解如何在 MySQL 中創建多個外鍵。

首先,我們需要同時創建多個相關聯的表。例如,我們創建兩個表:學生信息表(students)和課程信息表(courses)。代碼如下:

CREATE TABLE students(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
class VARCHAR(30) NOT NULL,
age INT(3) NOT NULL
);
CREATE TABLE courses(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
teacher VARCHAR(30) NOT NULL
);

然后,我們需要在這兩個表中分別創建外鍵。這里我們以課程信息表為例,給其添加一列外鍵,指向學生信息表中的 id 字段。代碼如下:

ALTER TABLE courses
ADD CONSTRAINT FK_courses_students
FOREIGN KEY (student_id)
REFERENCES students(id);

代碼中,我們使用 ALTER TABLE 語句并添加 CONSTRAINT 約束來設置外鍵。其中,FK_courses_students 為外鍵的名稱,FOREIGN KEY (student_id) 表示該外鍵關聯到 student_id 字段,REFERENCES students(id) 表示關聯到 students 表的 id 字段。

注意:在添加外鍵之前,我們需要先創建對應的索引。這里我們可以使用 CASCADE 關鍵字來自動創建外鍵索引。代碼如下:

CREATE INDEX idx_students_id ON students (id) USING BTREE;
CREATE INDEX idx_courses_student_id ON courses (student_id) USING BTREE;
ALTER TABLE courses
ADD CONSTRAINT FK_courses_students
FOREIGN KEY (student_id)
REFERENCES students(id)
ON UPDATE CASCADE
ON DELETE CASCADE;

代碼中,我們在兩個表中均創建了索引,并在添加外鍵時使用了 ON UPDATE CASCADE 和 ON DELETE CASCADE 來設置級聯操作。這樣就可以在更新或刪除關聯表的數據時自動更新或刪除相關的數據行。

最后,我們可以通過以下 SQL 語句來驗證是否成功添加了外鍵:

SHOW CREATE TABLE courses;

執行后,我們可以看到輸出結果中的 CREATE TABLE 語句里添加了外鍵約束,表示我們已經成功在多個表之間創建了外鍵關聯。如下所示:

CREATE TABLE `courses` (
`id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`teacher` varchar(30) NOT NULL,
`student_id` int(6) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_courses_student_id` (`student_id`),
CONSTRAINT `FK_courses_students` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

以上就是在 MySQL 中創建多個外鍵的方法,希望對讀者有所幫助。