返回顶部
首页 > 资讯 > 数据库 >如何在MySQL中利用外键实现级联删除
  • 328
分享到

如何在MySQL中利用外键实现级联删除

2024-04-02 19:04:59 328人浏览 八月长安
摘要

本篇内容介绍了“如何在Mysql中利用外键实现级联删除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下面,

本篇内容介绍了“如何在Mysql中利用外键实现级联删除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!



下面,我们先创建以下测试数据库表:


CREATE TABLE `roottb` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) TYPE=InnoDB;

CREATE TABLE `subtb` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`rootid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
INDEX (`rootid`),
FOREIGN KEY (`rootid`) REFERENCES roottb(`id`) ON DELETE CASCADE
) TYPE=InnoDB;



注意:
1、必须使用InnoDB引擎;
2、外键必须建立索引(INDEX);
3、外键绑定关系这里使用了“ ON DELETE CASCADE”,意思是如果外键对应数据被删除,将关联数据完全删除,更多信息请参考mysql手册中关于InnoDB的文档;

好,接着我们再来插入测试数据:


INSERT INTO `roottb` (`id`,`data`)
VALUES ('1', 'test root line 1'),
('2', 'test root line 2'),
('3', 'test root line 3');

INSERT INTO `subtb` (`id`,`rootid`,`data`)
VALUES ('1', '1', 'test sub line 1 for root 1'),
('2', '1', 'test sub line 2 for root 1'),
('3', '1', 'test sub line 3 for root 1'),
('4', '2', 'test sub line 1 for root 2'),
('5', '2', 'test sub line 2 for root 2'),
('6', '2', 'test sub line 3 for root 2'),
('7', '3', 'test sub line 1 for root 3'),
('8', '3', 'test sub line 2 for root 3'),
('9', '3', 'test sub line 3 for root 3');



我们先看一下当前数据表的状态:


mysql>; show tables;
+----------------+
| Tables_in_test |
+----------------+
| roottb |
| subtb |
+----------------+
2 rows in set (0.00 sec)

mysql>; select * from `roottb`;
+----+------------------+
| id | data |
+----+------------------+
| 1 | test root line 1 |
| 2 | test root line 2 |
| 3 | test root line 3 |
+----+------------------+
3 rows in set (0.05 sec)

mysql>; select * from `subtb`;
+----+--------+----------------------------+
| id | rootid | data |
+----+--------+----------------------------+
| 1 | 1 | test sub line 1 for root 1 |
| 2 | 1 | test sub line 2 for root 1 |
| 3 | 1 | test sub line 3 for root 1 |
| 4 | 2 | test sub line 1 for root 2 |
| 5 | 2 | test sub line 2 for root 2 |
| 6 | 2 | test sub line 3 for root 2 |
| 7 | 3 | test sub line 1 for root 3 |
| 8 | 3 | test sub line 2 for root 3 |
| 9 | 3 | test sub line 3 for root 3 |
+----+--------+----------------------------+
9 rows in set (0.01 sec)



嗯,一切都正常,好,下面我们要试验我们的级联删除功能了。

我们将只删除roottb表中id为2的数据记录,看看subtb表中rootid为2的相关子纪录是否会自动删除:


mysql>; delete from `roottb` where `id`='2';
Query OK, 1 row affected (0.03 sec)

mysql>; select * from `roottb`;
+----+------------------+
| id | data |
+----+------------------+
| 1 | test root line 1 |
| 3 | test root line 3 |
+----+------------------+
2 rows in set (0.00 sec)

mysql>; select * from `subtb`;
+----+--------+----------------------------+
| id | rootid | data |
+----+--------+----------------------------+
| 1 | 1 | test sub line 1 for root 1 |
| 2 | 1 | test sub line 2 for root 1 |
| 3 | 1 | test sub line 3 for root 1 |
| 7 | 3 | test sub line 1 for root 3 |
| 8 | 3 | test sub line 2 for root 3 |
| 9 | 3 | test sub line 3 for root 3 |
+----+--------+----------------------------+
6 rows in set (0.01 sec)

嗯,看subtb表中对应数据确实自动删除了,测试成功。

结论:在MySQL中利用外键实现级联删除成功!

“如何在MySQL中利用外键实现级联删除”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 如何在MySQL中利用外键实现级联删除

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

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

猜你喜欢
  • 如何在MySQL中利用外键实现级联删除
    本篇内容介绍了“如何在MySQL中利用外键实现级联删除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下面,...
    99+
    2024-04-02
  • MySQL外键级联的实现
    目录简介示例一、首先创建两张表stu,sc二、向两张表插入数据简介 mysql外键起到约束作用,在数据库层面保证数据的完整性。例如使用外键的CASCADE(cascade串联)类型,当子表(例如user_info)关联父...
    99+
    2022-07-28
    MySQL外键级联
  • mysql连表实现级联删除
    今天在用ssm写一个项目,两个表:category和goodclass表。其中,category表的外键goodclass_id是goodclass的主键,要求删除category的id值,其外键所对应的表...
    99+
    2024-04-02
  • 怎么在mysql中删除外键
    在mysql中删除外键的方法:1.启动mysql;2.登录mysql数据库;3.进入数据库;4.执行命令删除外键;具体步骤如下:首先,在命令行中启动mysql服务;service mysql start  mysql服务启动后,输入用户名和...
    99+
    2024-04-02
  • mysql如何删除外键关系
    这篇“mysql如何删除外键关系”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql如...
    99+
    2024-04-02
  • mysql如何删除外键约束
    如何删除 mysql 外键约束禁用外键检查使用 alter table 语句删除外键约束启用外键检查 如何删除 MySQL 外键约束 MySQL 的外键约束有助于维护数据的完整性和一致...
    99+
    2024-06-14
    mysql
  • mysql中怎么实现外键关联
    mysql中怎么实现外键关联,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 > show create table cou...
    99+
    2024-04-02
  • sqlserver中如何删除外键约束
    在SQL Server中,要删除外键约束,可以使用以下语法: ALTER TABLE table_name DROP CON...
    99+
    2024-04-20
    sqlserver
  • PHP如何删除关联数组中键值
    1、使用unset()函数可以用于取消设置关联数组中的键及其值。 // 声明关联数组 $arr = array( "1" => "加", "2" =>...
    99+
    2024-04-02
  • 如何在Android中使用WheelView实现三级联动
    这篇文章将为大家详细讲解有关如何在Android中使用WheelView实现三级联动,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。popupwindow中是三个wheelview,<&...
    99+
    2023-05-31
    android wheelview 三级联动
  • mysql中delete误删除如何利用binlog回滚
    这篇文章主要介绍mysql中delete误删除如何利用binlog回滚,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mysql> se...
    99+
    2024-04-02
  • 如何实现MySQL中删除用户的语句?
    如何实现MySQL中删除用户的语句?MySQL是一种流行的关系数据库管理系统,常用于存储和管理大量数据。在日常使用中,我们可能需要删除不再需要的用户。本文将介绍如何在MySQL中使用具体的代码示例删除用户。在MySQL中,我们可以通过使用D...
    99+
    2023-11-08
    删除 MySQL 用户
  • 如何在MySQL数据库中使用外键
    如何在MySQL数据库中使用外键 在关系型数据库中,外键是一种非常重要的概念,它能够帮助我们建立不同表之间的关联关系,并确保数据完整性。在MySQL数据库中,要使用外键,需要遵循一定的...
    99+
    2024-04-02
  • MYSQL中如何使用外键
    本篇文章给大家分享的是有关MYSQL中如何使用外键,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。外键的使用条件: 1.两个表必须是I...
    99+
    2024-04-02
  • 如何在MySQL中实现联表查询
    这篇文章将为大家详细讲解有关如何在MySQL中实现联表查询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL 中 JOIN, CROSS JOIN 和...
    99+
    2024-04-02
  • mysql如何实现主外键约束
    这篇文章将为大家详细讲解有关mysql如何实现主外键约束,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql主键约束的写法:“CREATE TABLE 表名(字段名 ...
    99+
    2024-04-02
  • 如何利用PHP+Mysql实现增删改查
    这篇文章主要介绍了如何利用PHP+Mysql实现增删改查,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP+Mysql实现增删改查PHP 是一种创建动态交互性站点的强有力的...
    99+
    2023-06-22
  • 怎么在html5中利用外链式实现加减乘除
    这篇文章将为大家详细讲解有关怎么在html5中利用外链式实现加减乘除,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。<!DOCTYPE html><html>...
    99+
    2023-06-09
  • 如何在android中利用RecyclerView实现Item的拖拽排序与滑动删除
    如何在android中利用RecyclerView实现Item的拖拽排序与滑动删除?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求和技术分析RecyclerV...
    99+
    2023-05-31
    recyclerview android recycle
  • 如何在mysql中使用foreign key创建外键
    如何在mysql中使用foreign key创建外键?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明表中的foreign key指向另一表中的primar...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作