在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数据库中保护数据完整性的重要东西。经过合理地设置外键束缚,能够保证数据的准确性和一致性。在创立表或修正表时,合理运用外键束缚,能够大大提高数据库的可靠性和易用性。
未经允许不得转载:全栈博客园 » mysql怎样设置外键,什么是外键?