mysql外键约束怎么写
时间 : 2023-06-01 04:29:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
MySQL 外键约束是一种完整性约束,它将两个表之间的关系维护在一起。主要作用是确保表中的数据能够保持一致性。例如,当您使用外键约束将两个表联系在一起时,如果在其中一个表中更改了数据,这个更改在其他相关表中也会自动更新。
外键约束遵循一些规则,如:
1.一个表的外键应该引用了另一个表的主键。
2.外键应该在选择 `ON DELETE` 和 `ON UPDATE` 选项时进行定义。
3.外键的索引应该与主键一致。
4.在添加外键之前,应该确保目标表的主键已经存在。
下面是 MySQL 外键约束的语法:
ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY (列名) REFERENCES 目标表名(列名) ON DELETE CASCADE ON UPDATE CASCADE;
其中:
- **表名**:你要添加外键约束的表名称。
- **约束名**:外键约束的名称,这个名称是可选的。
- **列名**:你想要添加外键约束的列名称。
- **目标表名**:你想要关联的表名称。
- **ON DELETE**:当删除主表记录时,子表记录应该如何处理。
- **ON UPDATE**:当更改主表记录时,子表记录应该如何处理。
在更具体的情况下,约束名和 ON DELETE/ON UPDATE 是可选的部分;如果不想这样定义,则会使用默认的名称和选项。
在创建外键约束之后,可以通过以下命令来删除它:
ALTER TABLE 表名 DROP FOREIGN KEY 约束名;
这是一个例子,说明了如何在两个表之间添加外键约束:
CREATE TABLE 表ID (
ID int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID)
) ENGINE=InnoDB;
CREATE TABLE 学生 (
ID int(11) NOT NULL AUTO_INCREMENT,
名字 varchar(255) NOT NULL,
表ID int(11) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (表ID) REFERENCES 表ID(ID)
) ENGINE=InnoDB;
在上面的例子中,我们创建了两个表:表ID 和 学生。我们在学生表中添加了一个 FOREIGN KEY 约束,这个约束将表ID的主键与学生表中的一个外键联系在一起。
这就是如何在 MySQL 中添加外键约束的基础知识。如果你想使用它们来提高你的应用程序的性能和数据完整性,那么就可以开始了解更多语法和用法。
在MySQL中定义外键约束需要使用关键字FOREIGN KEY。FOREIGN KEY后面跟着要定义的外键字段名,然后使用REFERENCES指定被参考表的名称和被参考的主键字段名。
语法示例:
CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
列3 数据类型,
...
FOREIGN KEY (外键列名) REFERENCES 被参考表名(主键列名)
);
其中,外键列名和主键列名必须具有相同的数据类型和大小。
外键约束还可以指定ON DELETE和ON UPDATE选项,以定义在被参考行删除或更新时如何处理外键行。
常用的选项有:
- CASCADE:当被参考行被删除或更新时,外键行也会被自动删除或更新。
- SET NULL:当被参考行被删除或更新时,外键行会被设置为NULL。
- RESTRICT:当被参考行被删除或更新时,如果存在外键行,则不允许执行删除或更新操作。
- NO ACTION:与RESTRICT类似,不执行任何操作。
示例:
CREATE TABLE 表1 (
列1 数据类型,
列2 数据类型,
列3 数据类型,
...
PRIMARY KEY (主键列名)
);
CREATE TABLE 表2 (
列1 数据类型,
列2 数据类型,
列3 数据类型,
...
FOREIGN KEY (外键列名) REFERENCES 表1(主键列名) ON DELETE CASCADE ON UPDATE SET NULL
);
在上面的示例中,表2的外键列被参考了表1的主键列,当被参考行被删除时,表2的外键行也会被设置为NULL。如果被参考行被更新,则外键行也会自动更新。
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章