在MySQL中,外鍵是指一個表的某一列參照了另一張表的主鍵。在創建表時,可以使用外鍵來設置表和表之間的關聯關系,這不僅能提高數據庫數據的完整性,還能增強數據之間的實用性和可讀性。
CREATE TABLE `table1` ( `id` int(11) NOT NULL, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, `table2_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `table2_id` (`table2_id`), CONSTRAINT `table1_ibfk_1` FOREIGN KEY (`table2_id`) REFERENCES `table2` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的代碼中,table1表中的table2_id列參考了table2表的id列,創建外鍵時需要使用FOREIGN KEY關鍵字指定列和參考列的關系。在MySQL中,一個表可以有多個外鍵,甚至可以設置一個表的一列既參考了另一張表的主鍵,又參考了另一張表的某一列。
CREATE TABLE `table3` ( `id` int(11) NOT NULL, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, `table1_id` int(11) NOT NULL, `table2_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `table1_id` (`table1_id`), KEY `table2_id` (`table2_id`), CONSTRAINT `table3_ibfk_1` FOREIGN KEY (`table1_id`) REFERENCES `table1` (`id`), CONSTRAINT `table3_ibfk_2` FOREIGN KEY (`table2_id`) REFERENCES `table2` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
上述代碼中,table3表中的table1_id和table2_id參考了table1表和table2表的id列,創建了兩個外鍵,分別是table3_ibfk_1和table3_ibfk_2,用于維護table3表和其他兩個表之間的關聯關系。
上一篇css樣式表轉碼
下一篇mysql 中s鎖和x鎖