怎样在mysql中建外键

2023年 9月 3日 65.7k 0

MySQL是一款广泛使用的关系型数据库,支持外键约束,可以保证数据的完整性和一致性。在MySQL中建立外键需要遵循一些步骤,本文将介绍如何在MySQL中建立外键。

怎样在mysql中建外键

第一步是创建主表和从表。主表和从表是指在关系模型中有关联关系的两个表。例如,学生表和班级表就是主从表的关系。在这个例子中,班级表是主表,学生表是从表。

CREATE TABLE class (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE student (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
class_id int(10) unsigned,
PRIMARY KEY (id),
INDEX class_idx (class_id),
CONSTRAINT class_fk FOREIGN KEY (class_id)
REFERENCES class (id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

第二步是为从表的外键列添加索引。这一步是非常重要的,因为外键列必须建立索引才能提高查询效率。在本例子中,外键列是class_id,添加了名为class_idx的索引。

第三步是创建外键约束。外键约束可以保证从表的外键列只能引用主表中存在的行。在本例子中,外键约束名是class_fk,它引用了主表class中的id列。

第四步是定义外键约束的操作。在本例子中,当从表的外键列所引用的主表中的行被删除或者更新时,从表中相应的行也会被删除或者更新。这个操作是通过ON DELETE CASCADE和ON UPDATE CASCADE实现的。

最后一步是使用ALTER TABLE语句将外键约束添加到从表中。示例代码如下:

ALTER TABLE student
ADD CONSTRAINT class_fk FOREIGN KEY (class_id)
REFERENCES class (id)
ON DELETE CASCADE ON UPDATE CASCADE;

通过以上步骤,我们可以在MySQL中成功建立外键约束,保证数据的完整性和一致性。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论