zoukankan      html  css  js  c++  java
  • mysql数据库外键的使用,随主表同时更新或删除

    现在有一个图书表,记载了图书信息,图书id为nh_id,

    要求有一个图书章节表,按章节记载图书的具体信息,外键nh_id对应图书表的nh_id,同时要求如果图书表id改变,对应的章节表的外键也改变,如果图书删除,该书对应的章节也一并删除

    添加外键约束为

    CONSTRAINT `nh_chapter-nh` FOREIGN KEY (`nh_id`) REFERENCES `nh` (`nh_id`) ON DELETE CASCADE ON UPDATE CASCADE

    其中

    CONSTRAINT `nh_chapter-nh` FOREIGN KEY (`nh_id`) REFERENCES `nh` (`nh_id`)

    为建立外键

    ON DELETE CASCADE ON UPDATE CASCADE

    为一并删除或更新

    完整参考

    CREATE TABLE `nh` (
      `nh_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '小说编号',
      `type` tinyint(2) unsigned NOT NULL COMMENT '类型',
      `sex` tinyint(1) unsigned NOT NULL COMMENT '性别[1男2女]',
      `name` varchar(100) NOT NULL COMMENT '名称',
      `intro` varchar(1500) NOT NULL COMMENT '简介',
      `words` varchar(10) NOT NULL COMMENT '字数',
      `author` varchar(30) NOT NULL COMMENT '作者',PRIMARY KEY (`nh_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10613 DEFAULT CHARSET=utf8mb4 COMMENT='小说表';
    
    
    CREATE TABLE `nh_chapter` (
      `chapter_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '章节编号',
      `index` int(10) unsigned NOT NULL COMMENT '章节编号',
      `nh_id` int(10) unsigned NOT NULL COMMENT '小说编号',
      `title` varchar(100) NOT NULL COMMENT '标题',
      `total` int(10) unsigned NOT NULL COMMENT '章节字数',
      `content` mediumtext NOT NULL COMMENT '章节内容',
      PRIMARY KEY (`chapter_id`),KEY `nh_id` (`nh_id`),
      CONSTRAINT `nh_chapter-nh` FOREIGN KEY (`nh_id`) REFERENCES `nh` (`nh_id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=244808 DEFAULT CHARSET=utf8mb4 COMMENT='小说章节表';
  • 相关阅读:
    Http接口安全设计
    RTMP服务器搭建(nginx+rtmp)
    OSI七层协议详解
    TCP协议的3次握手与4次挥手过程【深度详解】
    new和delete的深层次剖析(C++)
    大小端模式详解
    MP4文件格式分析及分割实现(附源码)
    使用HBuilder将H5的项目打包成手机可安装的webapp程序(.apk)
    Centos7 解决odoo10打印条形码显示方框乱码的问题
    linux 中运行Django项目
  • 原文地址:https://www.cnblogs.com/tingfengqieyu/p/8573514.html
Copyright © 2011-2022 走看看