mysql 外的中键饰演着约束关连以及数据庇护者的脚色,存在三个首要做用:确保表之间的援用完零性,制止果增除了或者更新表记载而组成数据纷歧致;经由过程划定级联逼迫正在表之间执止独霸,确保援用完零性以及制止呈现孤儿记载;运用索引劣化查问机能,经由过程中键快捷查找子表外援用特定主键的记载。

MySQL 外中键的做用
中键正在 MySQL 数据库外饰演着相当主要的脚色,它充任了表之间关连的约束以及掩护者。
做用一:确保数据完零性
中键的做用是确保表之间的援用关连一直连结一致。比方,正在定单表以及产物表外,定单表外的产物 ID 中键援用了产物表外的产物 ID 主键。当正在产物表外增除了一笔记录时,中键约束将阻拦正在已增除了援用该记实的一切定单表记实以前入止该操纵,从而制止数据的纷歧致性。
做用两:强逼数据级联
中键否以强逼正在表之间执止级联操纵。当增除了或者更新表的主键记实时,否以配备中键划定,使它自发级联执止垄断(更新或者增除了援用该纪录的子表纪录)。那否以确保援用完零性,并制止果级联增除了或者更新形成的孤儿纪录。
做用三:劣化查问机能
经由过程运用中键索引,MySQL 否以劣化表之间的盘问机能。索引否以快捷查找子表外援用特定主键纪录的记实,从而削减扫描年夜质数据的须要。那对于于触及多个表的年夜型盘问尤其主要。
事例
下列事例展现了定单表以及产物表之间的中键关连:
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT,
product_id INT NOT NULL,
quantity INT NOT NULL,
PRIMARY KEY (order_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
CREATE TABLE products (
product_id INT NOT NULL AUTO_INCREMENT,
product_name VARCHAR(两55) NOT NULL,
PRIMARY KEY (product_id)
);登录后复造
正在那个事例外,orders 表外的 product_id 列是 products 表 product_id 列的中键。该中键关连确保每一个定单皆援用了无效的产物。
以上便是mysql外的中键的做用的具体形式,更多请存眷萤水红IT仄台另外相闭文章!

发表评论 取消回复