title: sql级联更新和级联删除
date: 2019-05-27 23:15:29
tags: [SQL, Mysql]

sql级联更新
执行更新book表失败
后来查找原因是book表被borrow引用了,所以数据库不知道book表更新borrow表要不要更新,所以我们需要进行级联更新,也就是book表更新,borrow表和其它引用了book表也更新外键。
book表

borrow表

级联更新
在创建表时就指定级联更新和级联删除

CREATE TABLE `book` (`ISBN` varchar(20) NOT NULL,`book_name` varchar(50) NOT NULL,`book_author` varchar(20) NOT NULL,`book_pub` varchar(50) DEFAULT NULL,`sort_id` int(11) DEFAULT NULL,`book_record` varchar(255) DEFAULT NULL,`book_price` decimal(10,0) NOT NULL,`book_borrow` int(11) DEFAULT '0',PRIMARY KEY (`ISBN`),KEY `sort_id` (`sort_id`),CONSTRAINT `book_ibfk_1` FOREIGN KEY (`sort_id`) REFERENCES `book_sort` (`sort_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE `borrow` (`id` int(11) NOT NULL AUTO_INCREMENT,`ISBN` varchar(20) NOT NULL,`s_id` varchar(20) NOT NULL,`price` decimal(10,0) NOT NULL,`book_name` varchar(50) NOT NULL,`borrow_date` varchar(255) DEFAULT NULL,`expect_return_date` varchar(255) DEFAULT NULL,`return_date` varchar(255) DEFAULT NULL,`book_borrow` int(11) DEFAULT NULL,PRIMARY KEY (`id`),KEY `s_id` (`s_id`),KEY `ISBN` (`ISBN`),CONSTRAINT `borrow_ibfk_1` FOREIGN KEY (`s_id`) REFERENCES `student` (`s_id`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `borrow_ibfk_2` FOREIGN KEY (`ISBN`) REFERENCES `book` (`ISBN`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

如果是已经创建了数据表,那么先撤销外键约束

ALTER TABLE borrow
DROP FOREIGN KEY fk_borrow1 这里为你外键名比如constraint后面的名称

然后再重新增加约束

ALTER TABLE Orders
ADD CONSTRAINT fk_borrow1
FOREIGN KEY (s_id)
REFERENCES student(s_Id) ON DELETE CASCADE ON UPDATE CASCADE;ALTER TABLE Orders
ADD CONSTRAINT fk_borrow2
FOREIGN KEY (ISBN)
REFERENCES book(ISBN) ON DELETE CASCADE ON UPDATE CASCADE;

最后再执行更新

UPDATE book SET ISBN = '201905152321007', book_name = 'javascript', book_author = 'javascript作者', book_pub = 'javascript出版社', book_borrow = 1, sort_id = 1, book_record = '2019-05-24', book_price = 250 WHERE ISBN = '201905152321001';

即可成功更新book表,而borrow表中的ISBN也跟着更新。
更多文章请查阅我的博客:https://zhouhangzooo.github.io/

sql级联更新和级联删除相关推荐

  1. mysql数据库教程级联_Mysql实现级联操作(级联更新、级联删除)

    tablestu( sidint UNSIGNED primary keyauto_increment, namevarchar(20) not null) TYPE=InnoDB charset=u ...

  2. mysql级联删除外键约束_MySQL外键约束、级联更新、级联删除

    MySQL支持外键(foreign key),外键允许跨表交叉引用相关数据,另外外键约束能够保证相关数据的一致性.一个外键关系通常包括一个父表和一个子表.父表包含原始的字段数据,子表引用父表中该字段的 ...

  3. mysql级联更新和级联删除

    级联更新和级联删除 1.首先我们建一张主表,把sid设为主键 CREATE TABLE `zhu` (`sid` int(10) unsigned NOT NULL AUTO_INCREMENT,`n ...

  4. oracle级联更新与级联删除

    Oracle级联删除:可以使用外键约束来实现,建立表的主外键关系,给列设置级联删除.如下: --创建了CLASS表,并设置ID字段为主键. -- Create tablecreate table CL ...

  5. MySQL之级联删除、级联更新、级联置空

    1. 准备测试表 # 专业表majorcreate table major(id int primary key auto_increment, mmane varchar(20))engine=in ...

  6. mysql级联更新_Mysql实现级联操作(级联更新、级联删除)(转)

    一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not ...

  7. mysql实现级联操作(级联更新、级联删除)

    一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not ...

  8. MySQL基础--(级联更新和级联删除)

    传统的方式添加外键 alter table 从表 add constraint fk_从表_主表 foreign key (主表) reference 主表(id): 我们在这里添加一个赋值. sel ...

  9. Access外键 级联更新、删除

    工具栏-->"关系". 打开主表和从表. 将主表的字段拖动到从表的对应字段. (两个字段要求类型相同. 如果主表是自动编号,那么从表用长整型.) Access添加外键约束 ( ...

最新文章

  1. [python]-数据科学库Numpy学习
  2. php 算法 二进制文件,关于PHP二进制流 逐bit的低位在前算法(详解)_PHP教程
  3. JVM001_类文件结构
  4. Java装饰器模式详解
  5. 【英语学习】【English L06】U01 Breakfast L5 Continental and English
  6. NLP算法求建议 | 腾讯 VS 美团
  7. PowerShell 导出SharePoint管理中心解决方式
  8. 左侧侧拉栏html,html – 将侧边栏拉伸到页面的完整高度
  9. .net dropdownlist 動態顯示,指定字段
  10. Hadoop安装详细教程 单机版
  11. express框架下载及使用
  12. Anbox源码分析(三)——Anbox渲染原理(源码分析)
  13. 曾扬言 机器人合法公民_曾扬言“摧毁人类”的机器人索菲亚,现状如何?如果失控了咋办?...
  14. 何学林:房价为什么降不下来?房价上涨的刚性是由强大的利益共同体共同作用的结果(原创首发,深度好文)——何学林房地产大策划之十二
  15. windows server 2003安装组件提示插入cd
  16. 树莓派瞎折腾[1]-实现简单的命令行音乐播放器
  17. 第一周预习:Java三大特性
  18. 知因智慧任亮:用知识图谱构建清晰的“产业世界”,做中国最大的产业链金融AI赋能运营商丨Xtecher 封面
  19. 2023中国无人配送产业发展高峰论坛
  20. Python3 Gearman 使用

热门文章

  1. PDF编辑工具怎么为PDF文件添加页码
  2. 【老生谈算法】matlab实现高斯白噪声仿真算法源码——高斯白噪声
  3. 微积分(一)一般概念以及从圆的面积怎么来?
  4. 微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存
  5. Python爬虫实战使用scrapy与selenium来爬取数据
  6. 在Google地图上找到经度和纬度的方法
  7. 日语资料和电子版教材无偿分享
  8. 154 万 AI 开发者用数据告诉你,中国 AI 如何才能弯道超车?
  9. 前端-基础篇-HTML-HTML基本结构
  10. response.setHeader各种用法