`
mxl86
  • 浏览: 175634 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySql InnoDB 外键约束动作说明

阅读更多

CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用。在两个表之间,你不应定义若干在父表或子表中的同一列采取动作的ON UPDATE CASCADE子句。

SET NULL: 从父表删除或更新行,并设置子表中的外键列为NULL。如果外键列没有指定NOT NULL限定词,这就是唯一合法的。ON DELETE SET NULL和ON UPDATE SET NULL子句被支持。

NO ACTION: 在ANSI SQL-92标准中,NO ACTION意味这不采取动作,就是如果有一个相关的外键值在被参考的表里,删除或更新主要键值的企图不被允许进行(Gruber, 掌握SQL, 2000:181)。 InnoDB拒绝对父表的删除或更新操作。

RESTRICT: 拒绝对父表的删除或更新操作。NO ACTION和RESTRICT都一样,删除ON DELETE或ON UPDATE子句。(一些数据库系统有延期检查,并且NO ACTION是一个延期检查。在MySQL中,外键约束是被立即检查的,所以NO ACTION和RESTRICT是同样的)。

SET DEFAULT: 这个动作被解析程序识别,但InnoDB拒绝包含ON DELETE SET DEFAULT或ON UPDATE SET DEFAULT子句的表定义。

 

分享到:
评论

相关推荐

    mysql外键的添加与删除参考.pdf

    MySQL 中的外键只能在 InnoDB 存储引擎中生效,而其他存储引擎将忽略外键约束。 添加外键 --------- 在 MySQL 中,添加外键可以使用ALTER TABLE语句,例如: ``` ALTER TABLE ss_accesscode ADD FOREIGN KEY ...

    Mysql增加外键的方法

    只有InnoDB存储引擎支持外键约束,因此在创建数据表时,必须指定ENGINE=InnoDB。如果不设置,可能会导致外键约束不起作用。 此外,在使用PHPMyAdmin时,目前(直到4.0X和4.1X版本)尚未提供所见即所得的外键定义...

    mysql的外键

    - 在InnoDB存储引擎中,外键约束是支持的;而在MyISAM存储引擎中,则不支持外键。 8. **实际应用** - 在电商系统中,订单表(Orders)可以通过外键关联用户表(Users),以标识下单的用户。 - 在论坛系统中,...

    详解MySQL中的外键约束问题

    在MySQL中,外键约束主要用于InnoDB存储引擎,因为它支持事务处理和行级锁定,这在处理并发操作和数据完整性时至关重要。 在MySQL中,外键约束有四种行为类型: 1. CASCADE:当父表中的行被删除或更新时,会自动...

    mysql处理添加外键时提示error 150 问题的解决方法

    如果其中一个或者两个表是 MyISAM 引擎的表,若想要使用外键约束,必须是 InnoDB 引擎。实际上,如果两个表都是 MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键。你可以通过查询浏览器来设置表的引擎类型。...

    MySQL Innodb 索引原理详解

    - **外键支持**:InnoDB支持外键约束,而MyISAM不支持。 - **表锁机制**:MyISAM使用表锁机制,降低了并发性能。 #### 4. 总结 本文详细介绍了MySQL InnoDB存储引擎中的索引原理及其实现方式,特别是B+树的应用。...

    详解MySQL 外键约束

    MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。 2.外键的使用条件 两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持) 外键列必须建立了索引,MySQL ...

    MySQL外键使用及说明详解

    MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。 外键的使用条件:  1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);  2.外键列必须建立了索引,...

    mysql innodb恢复数据工具.rar

    这是我从网上找到的mysql/mariadb对innodb表进行数据恢复的工具,实现从innodb的数据库文件中恢复数据,用于实现下面情况:1、直接下载了innodb数据库的文件,而不是导出其数据,想恢复数据时(需要有完整的文件,...

    MySQL体系结构及原理(innodb)图文完美解析

    InnoDB提供了多种高级功能,如外键约束、事务管理以及崩溃恢复机制等。 3. **MySQL与InnoDB的关系** MySQL可以使用多种不同的存储引擎,而InnoDB是其中最流行的一个。从MySQL 5.1版本开始,InnoDB被集成作为插件...

    Mysql 高可用 InnoDB Cluster 多节点搭建过程

    Mysql 高可用 InnoDB Cluster 多节点搭建过程 Mysql 高可用 InnoDB Cluster 多节点搭建过程是指使用 Mysql 的 InnoDB Cluster 功能来搭建一个高可用性的集群环境。在这个过程中,我们将使用四台服务器,node01、...

    mysql innodb类型数据库表 根据ibd文件获取表 space id

    mysql innodb类型数据库表 根据ibd文件获取表 space id,用于恢复innodb类型数据表数据

    MySQL内核:InnoDB存储引擎 卷1.pdf.zip

    3. **外键约束**:InnoDB支持外键,这是其他一些存储引擎如MyISAM所不具备的。外键可以确保数据的参照完整性和数据库间的关系。 4. **MVCC(多版本并发控制)**:InnoDB使用MVCC来实现高并发读写,尤其是在可重复读...

    MySQL InnoDB Cluster安装.docx

    MySQL InnoDB Cluster是一种高可用性解决方案,用于在MySQL 8中构建分布式数据库系统。它基于InnoDB存储引擎,提供了一种自动化的故障切换和数据复制功能,确保即使在单个节点故障时,整个集群也能保持运行。以下是...

    MySql Innodb 引擎特性详解

    6. **支持外键约束**:与MyISAM相比,InnoDB引擎支持外键约束,有助于维护数据库的完整性。 7. **不支持全文索引**:尽管InnoDB功能强大,但它不支持全文索引功能,这一点在特定的应用场景中可能需要额外考虑。 #...

    mysql外键设置

    1. **存储引擎限制**:MySQL 的外键约束只支持 InnoDB 存储引擎,不支持 MyISAM 等其他类型的存储引擎。 2. **命名规则**:外键名称可以使用 `constraint 'fk_name'` 或 `constraint "fk_name"` 形式指定。 3. **...

Global site tag (gtag.js) - Google Analytics