MySQL表怎么添加外键
时间 : 2023-03-14 03:04:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL表添加外键可以使用ALTER TABLE语句实现。

在MySQL中,外键是指一个表中的数据列,使得数据列中的数据与另一个表的数据列相关联。

若要在表中添加外键约束,需要以下步骤:

1.创建表

首先,我们需要创建两个表。假设有一个名为“orders”的表和一个名为“customers”的表。orders表中有一个名为“customer_id”的字段,它是一个与customers表中的“id”字段相关联的外键。

下面是orders表的DDL(数据定义语言):

CREATE TABLE orders (

id INT(11) NOT NULL AUTO_INCREMENT,

order_number INT(11) NOT NULL,

customer_id INT(11) NOT NULL,

PRIMARY KEY (id)

);

这个DDL语句创建了一个名为“orders”的表,并定义了三个字段:id、order_number和customer_id。其中id字段为自增长主键。

2.添加外键

要将customer_id字段与customers表中的id字段相关联,需要执行以下ALTER TABLE语句:

ALTER TABLE orders

ADD CONSTRAINT fk_customer

FOREIGN KEY (customer_id)

REFERENCES customers(id)

ON DELETE CASCADE;

这个ALTER TABLE语句可以在orders表的customer_id字段上创建一个名为“fk_customer”的外键约束,并将其与customers表的id字段相关联。当customers表中的一条记录被删除时,关联的orders表中的记录也将被删除(ON DELETE CASCADE)。

3.验证外键是否生效

我们可以执行以下语句来验证外键是否生效:

SHOW CREATE TABLE orders;

这个语句将显示orders表的DDL,从中我们可以看出外键约束是否已经成功地应用于表中。

如果外键约束正确地添加到了orders表中,添加不符合外键约束的数据时,将会返回一个错误。

以上是添加MySQL表外键的示例。在实际操作中,需要按照实际情况编写DDL和ALTER TABLE语句,并根据情况进行调整。

在MySQL表中,外键是指用于指定一个字段或一组字段可以引用另一个表中一个或多个字段的约束。通过使用外键约束,可以确保数据的完整性和一致性,并确保引用的数据始终存在于相关表中。

要添加一个外键约束,请执行以下步骤:

1. 创建父表和子表

首先,您需要创建两个表:父表和子表。通常,父表和子表之间存在某种联系,例如,父表可能包含一组编码、名称、描述等数据,而子表包含与父表相关的其他详细信息。

父表可以如下所示:

CREATE TABLE `parent_table` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`parent_field1` varchar(255) DEFAULT NULL,

`parent_field2` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

子表可以如下所示:

CREATE TABLE `child_table` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`child_field1` varchar(255) DEFAULT NULL,

`child_field2` varchar(255) DEFAULT NULL,

`parent_id` int(11) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `fk_parent_id` (`parent_id`),

CONSTRAINT `fk_child_table_parent_table` FOREIGN KEY (`parent_id`) REFERENCES `parent_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 将外键列添加到子表中

在子表中,您需要定义一个列来存储父表的主键值。在我们的例子中,我们定义了一个名为“parent_id”的列。

`parent_id` int(11) DEFAULT NULL,

3. 创建外键表约束

在子表上创建外键约束非常简单。在我们的例子中,我们使用“CONSTRAINT”关键字并为外键命名:

CONSTRAINT `fk_child_table_parent_table` FOREIGN KEY (`parent_id`) REFERENCES `parent_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

其中,“fk_child_table_parent_table”是外键约束的名称,“parent_id”是子表中包含外键的列的名称,“parent_table”是父表的名称和“id”是父表中包含主键的列的名称。CASCADE选项定义了对于父表中被修改或删除的行的行为。

4. 激活外键约束

为了让MySQL验证外键约束,您需要将其激活。这可以通过以下方法完成:

SET FOREIGN_KEY_CHECKS=1;

现在,如果您尝试在子表中插入对不存在于父表中的关联值,MySQL将返回一个错误。

总结

MySQL表的外键约束是确保数据完整性和一致性的重要工具。通过简单地创建一个外键约束,您可以为多个表之间建立关系,并确保只有有效的值可以**入子表中。此外,您可以定义外键约束的行为,例如,当父表中包含的行被修改或删除时,可以通过CASCADE选项来处理。