首页  > 数据库 > mysql怎样设置外键,什么是外键?

mysql怎样设置外键,什么是外键?

数据库 2024-12-24 5

在MySQL中,设置外键束缚用于保证数据的一致性和完整性。外键束缚用于指定一个列或多个列,这些列的值有必要在另一个表的某些列中存在。下面是设置外键的过程:

1. 确认外键列:首要,确认你想要设置外键的列。这些列将引证另一个表中的主键或唯一键。

2. 创立或修正表:你能够运用`CREATE TABLE`句子创立一个新表,或许在现有的表中增加外键束缚。

3. 运用`FOREIGN KEY`子句:在`CREATE TABLE`或`ALTER TABLE`句子中,运用`FOREIGN KEY`子句来界说外键。你需求指定外键列的称号,以及它引证的表的称号和列的称号。

4. 指定引证的动作:你能够指定当外键列中的值被更新或删去时,应该履行的动作。例如,你能够设置`ON DELETE CASCADE`来保证当引证的行被删去时,外键地点的行也会被删去。

下面是一个简略的比如,假定咱们有两个表:`orders`和`customers`。`orders`表有一个外键列`customer_id`,它引证`customers`表的主键`id`。

```sqlCREATE TABLE customers qwe2;

CREATE TABLE orders REFERENCES customers ON DELETE CASCADEqwe2;```

在这个比如中,`orders`表中的`customer_id`列是外键,它引证`customers`表中的`id`列。当`customers`表中的某个行被删去时,一切引证该`id`的`orders`表中的行也会被删去。

请依据你的详细需求调整表结构和外键设置。

什么是外键?

外键(Foreign Key)是数据库表中的一种束缚,用于树立两个表之间的引证联系。它保证了数据的引证完整性,即从表中引证主表的主键值有必要存在于主表中。外键一般用于完成实体联系模型(ER模型)中的相相联系。

外键的效果

外键的首要效果绵亘:

保护数据的一致性和完整性。

保证从表中的数据与主表中的数据保持一致。

供给数据引证的透明性,使得数据的相相联系愈加直观。

怎么设置MySQL中的外键

在MySQL中设置外键,一般有以下几种办法:

办法一:在创立表时设置外键

在创立表的时分,能够直接在表界说中增加外键束缚。以下是一个示例:

CREATE TABLE IF NOT EXISTS `student` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`class_id` int(11) NOT NULL,

PRIMARY KEY (`id`),

CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在这个比如中,`student` 表中的 `class_id` 字段是一个外键,它引证了 `class` 表中的 `id` 字段。

办法二:运用ALTER TABLE句子增加外键

假如现已创立了表,但需求增加外键束缚,能够运用ALTER TABLE句子。以下是一个示例:

ALTER TABLE `student`

ADD CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`);

这个句子会在 `student` 表中增加一个名为 `fk_class` 的外键束缚,引证 `class` 表的 `id` 字段。

外键束缚的特点

ON DELETE CASCADE:当删去主表中的记载时,主动删去从表中引证该记载的一切记载。

ON DELETE SET NULL:当删去主表中的记载时,将引证该记载的从表中的外键列设置为NULL。

ON DELETE RESTRICT:当删去主表中的记载时,假如从表中存在引证该记载的记载,则不答应删去。

ON UPDATE CASCADE:当更新主表中的记载时,主动更新从表中引证该记载的一切记载。

ON UPDATE SET NULL:当更新主表中的记载时,将引证该记载的从表中的外键列设置为NULL。

ON UPDATE RESTRICT:当更新主表中的记载时,假如从表中存在引证该记载的记载,则不答应更新。

外键束缚的留意事项

在运用外键束缚时,需求留意以下几点:

外键列有必要与主表的主键列具有相同的数据类型。

外键列的数目有必要与主表的主键列的数目相同。

外键列的值有必要存在于主表的主键列中,或许答应为NULL。

在删去或更新主表中的记载时,有必要考虑从表中的依靠联系。

外键是MySQL数据库中保护数据完整性的重要东西。经过合理地设置外键束缚,能够保证数据的准确性和一致性。在创立表或修正表时,合理运用外键束缚,能够大大提高数据库的可靠性和易用性。


Copyright © 2016-2028零基础教程 Rights Reserved. XML地图