sql级联更新和级联删除
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级联更新和级联删除相关推荐
- mysql数据库教程级联_Mysql实现级联操作(级联更新、级联删除)
tablestu( sidint UNSIGNED primary keyauto_increment, namevarchar(20) not null) TYPE=InnoDB charset=u ...
- mysql级联删除外键约束_MySQL外键约束、级联更新、级联删除
MySQL支持外键(foreign key),外键允许跨表交叉引用相关数据,另外外键约束能够保证相关数据的一致性.一个外键关系通常包括一个父表和一个子表.父表包含原始的字段数据,子表引用父表中该字段的 ...
- mysql级联更新和级联删除
级联更新和级联删除 1.首先我们建一张主表,把sid设为主键 CREATE TABLE `zhu` (`sid` int(10) unsigned NOT NULL AUTO_INCREMENT,`n ...
- oracle级联更新与级联删除
Oracle级联删除:可以使用外键约束来实现,建立表的主外键关系,给列设置级联删除.如下: --创建了CLASS表,并设置ID字段为主键. -- Create tablecreate table CL ...
- MySQL之级联删除、级联更新、级联置空
1. 准备测试表 # 专业表majorcreate table major(id int primary key auto_increment, mmane varchar(20))engine=in ...
- mysql级联更新_Mysql实现级联操作(级联更新、级联删除)(转)
一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not ...
- mysql实现级联操作(级联更新、级联删除)
一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not ...
- MySQL基础--(级联更新和级联删除)
传统的方式添加外键 alter table 从表 add constraint fk_从表_主表 foreign key (主表) reference 主表(id): 我们在这里添加一个赋值. sel ...
- Access外键 级联更新、删除
工具栏-->"关系". 打开主表和从表. 将主表的字段拖动到从表的对应字段. (两个字段要求类型相同. 如果主表是自动编号,那么从表用长整型.) Access添加外键约束 ( ...
最新文章
- [python]-数据科学库Numpy学习
- php 算法 二进制文件,关于PHP二进制流 逐bit的低位在前算法(详解)_PHP教程
- JVM001_类文件结构
- Java装饰器模式详解
- 【英语学习】【English L06】U01 Breakfast L5 Continental and English
- NLP算法求建议 | 腾讯 VS 美团
- PowerShell 导出SharePoint管理中心解决方式
- 左侧侧拉栏html,html – 将侧边栏拉伸到页面的完整高度
- .net dropdownlist 動態顯示,指定字段
- Hadoop安装详细教程 单机版
- express框架下载及使用
- Anbox源码分析(三)——Anbox渲染原理(源码分析)
- 曾扬言 机器人合法公民_曾扬言“摧毁人类”的机器人索菲亚,现状如何?如果失控了咋办?...
- 何学林:房价为什么降不下来?房价上涨的刚性是由强大的利益共同体共同作用的结果(原创首发,深度好文)——何学林房地产大策划之十二
- windows server 2003安装组件提示插入cd
- 树莓派瞎折腾[1]-实现简单的命令行音乐播放器
- 第一周预习:Java三大特性
- 知因智慧任亮:用知识图谱构建清晰的“产业世界”,做中国最大的产业链金融AI赋能运营商丨Xtecher 封面
- 2023中国无人配送产业发展高峰论坛
- Python3 Gearman 使用