返回顶部
首页 > mysql语句如何创建外键
  • 10
分享到

mysql语句如何创建外键

2024年03月26日 10人浏览 编程网

摘要

在 MySQL 中创建外键可确保数据库表之间的关系完整性,从而防止数据不一致。外键是一种对引用另一个表中的列进行的引用约束,它强制执行对引用表的特定限制,例如确保引用表的键值存在且唯一。

详细说明

1. 语法

ALTER TABLE child_table
ADD FOREIGN KEY (child_column)
REFERENCES parent_table (parent_column)
[ON DELETE|UPDATE action];
  • child_table:要创建外键的表。
  • child_column:child_table 中引用 parent_table 中列的列。
  • parent_table:被引用的表。
  • parent_column:parent_table 中被引用的列(主键或唯一索引)。
  • ON DELETE|UPDATE action:当 parent_table 中的被引用行被删除或更新时采取的操作(可选项)。

2. 操作

  • ON DELETE:指定当 parent_table 中被引用行被删除时对 child_table 中引用的行的操作。
    • CASCADE:删除 child_table 中所有包含被删除 parent_table 行外键值的行。
    • SET NULL:将 child_table 中外键值设置为 NULL。
    • SET DEFAULT:将 child_table 中外键值设置为 child_column 的默认值。
    • RESTRICT:如果删除 parent_table 中的行会影响 child_table 中的行,则禁止删除操作。
  • ON UPDATE:指定当 parent_table 中被引用行被更新时对 child_table 中引用的行的操作。
    • CASCADE:级联更新 child_table 中所有引用被更新 parent_table 行外键值的行的值。
    • SET NULL:将 child_table 中外键值设置为 NULL。
    • SET DEFAULT:将 child_table 中外键值设置为 child_column 的默认值。
    • RESTRICT:如果更新 parent_table 中的行会影响 child_table 中的行,则禁止更新操作。

3. 示例

创建一张名为 orders 的表,它引用名为 products 表中的 product_id 列:

CREATE TABLE orders (
  order_id INT NOT NULL AUTO_INCREMENT,
  product_id INT NOT NULL,
  quantity INT NOT NULL,
  PRIMARY KEY (order_id),
  FOREIGN KEY (product_id) REFERENCES products (product_id)
);

上面语句会在 orders 表中创建一个名为 product_id 的外键,它引用 products 表中的 product_id 列。当 products 表中的行被删除时,orders 表中引用该行的所有行都将被级联删除。

4. 益处

创建外键具有以下好处:

  • 数据完整性:确保引用表的记录存在并唯一。
  • 级联操作:允许在对 parent_table 的行进行更改时对 child_table 的行进行自动更新或删除。
  • 数据一致性:防止在 parent_table 和 child_table 之间出现数据不一致的情况。

以上就是mysql语句如何创建外键的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: mysql语句如何创建外键

本文链接: https://www.lsjlt.com/wiki/eda0c1a4dd.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作