zoukankan      html  css  js  c++  java
  • 主键与外键之间的级联设置

    create table /Alter table 时
    可以

    [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]


    [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]


    如果没有指定 ON DELETE 或 ON UPDATE,则默认为 NO ACTION。 

    ON DELETE NO ACTION 
    指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE 语句。

    ON UPDATE NO ACTION 
    指定如果试图更新某一行中的键值,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 UPDATE 语句。

    CASCADESET NULL 和 SET DEFAULT 允许通过删除或更新键值来影响指定具有外键关系的表,这些外键关系可追溯到在其中进行修改的表。如果为目标表也定义了级联引用操作,那么指定的级联操作也将应用于删除或更新的那些行。不能为具有 timestamp 列的外键或主键指定 CASCADE。 

    ON DELETE CASCADE 
    指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则也将删除所有包含那些外键的行。 

    ON UPDATE CASCADE 
    指定如果试图更新某一行中的键值,而该行的键值被其他表的现有行中的外键所引用,则组成外键的所有值也将更新到为该键指定的新值。 

    注意: 
    如果 timestamp 列是外键或被引用键的一部分,则不能指定 CASCADE。



    ON DELETE SET NULL 
    指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。为了执行此约束,目标表的所有外键列必须可为空值。

    ON UPDATE SET NULL 
    指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL

    引自:http://www.cnblogs.com/RedLyn/archive/2011/10/08/2202066.html

  • 相关阅读:
    手机站测试工具(node服务器)
    [mongodb]child process failed, exited with error number 100
    正则
    VBA基础之Excel 工作薄(Book)的操作(三)
    VBA基础之Excel 工作表(Sheet)的操作(二)
    VBA基础之Excel VBA 表格的操作(一)
    基本的布局问题
    【转】jQuery最佳实践
    【转】jQuery的deferred对象详解
    2018-2019-1 20189221《Linux内核原理与分析》第二周作业
  • 原文地址:https://www.cnblogs.com/zhangliming/p/2593645.html
Copyright © 2011-2022 走看看