zoukankan      html  css  js  c++  java
  • mysql 简单级联的学习

    数据库上面一直是我的弱项,昨天突然想到,简单的级联,即一个表中的列表删除了,另外一个依赖这个表的其他数据应该也会删除,当时想了下,可以根据外键来判断把其他表的数据给删除了,但是这样一来好像要必须知道其他相关联的表名,这样一来好像才可以删除的吧,之后又查了下mysql中好像配置下级联的方式就可以了.

    MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。在创建索引的时候,可以指定在删除、更新父表时,对子表进行的相应操作,包括RESTRICT、NO ACTION、SET NULL和CASCADE。其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新;CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录;SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被SET NULL。

    因为只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎

    CREATE DATABASE test_db;
    
    
    DROP TABLE t_user;
    CREATE TABLE t_user (
    rec_id INT (4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    user_id INT (4) ,
    user_name VARCHAR (20),
    user_group_id INT(4),
    creat_time DATE,
    CONSTRAINT fk_user_group FOREIGN KEY (user_group_id) REFERENCES user_group(rec_id) ON UPDATE CASCADE ON DELETE CASCADE
    ) ENGINE = INNODB
    
    
    DROP TABLE user_group;
    CREATE TABLE user_group (
    rec_id INT (4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    group_id INT (4) NOT NULL,
    group_name VARCHAR (20) DEFAULT NULL
    ) ENGINE = INNODB

    user_group随便插入点数据;

    t_user随便差点数据;

    当我们运行下面的sql语句的时候

    DELETE FROM user_group WHERE rec_id= 2;

    这个时候我们在看看数据的变化:小红组被删除了

    在看看依赖与小红组的小红们现在怎样了——都没有了

    那说明这样的效果达到我们的预期了,因为只要t_user中的数据 设了外键纸箱user_group那么 就对他产生了依赖,即变成人家小弟了,大哥都挂了,小弟肯定也都挂完了。,就是这个道理。。

    再来把t_user中的小明小弟都给干掉:

    DELETE FROM t_user WHERE rec_id=1 || rec_id=2 || rec_id=3 ;

    小明们全挂了,但是老大还在。按道理是这样的。。

    上面就是简单的级联学习,深入的学习 等空了再深入了解,如果有错,请指出,谢谢诶!

     参考:http://www.cnblogs.com/sxy199343/p/5970123.html

  • 相关阅读:
    二分+RMQ/双端队列/尺取法 HDOJ 5289 Assignment
    思维题 HDOJ 5288 OO’s Sequence
    树形DP Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland
    最大流增广路(KM算法) HDOJ 1853 Cyclic Tour
    最大流增广路(KM算法) HDOJ 1533 Going Home
    最大流增广路(KM算法) HDOJ 2255 奔小康赚大钱
    Complete the Word CodeForces
    Gadgets for dollars and pounds CodeForces
    Vasya and Basketball CodeForces
    Carries SCU
  • 原文地址:https://www.cnblogs.com/eoooxy/p/6558980.html
Copyright © 2011-2022 走看看