数据库系统实训——实验七——触发器
第一部分:样例库的应用
1) INSERT 触发器
语句:
CREATE TABLE orders_log
(
change_id int NOT NULL AUTO_INCREMENT,
changed_on datetime NOT NULL ,
change_type char(1) NOT NULL ,
order_num int NOT NULL ,
PRIMARY KEY (change_id)
) ENGINE=INNODB;
CREATE TRIGGER neworder AFTER INSERT ON orders
FOR EACH ROW
BEGIN
INSERT INTO orders_log(changed_on, change_type, order_num)
VALUES(Now(),‘A’, NEW.order_num);
END;
截图:
语句:
INSERT INTO orders(order_date, cust_id)
VALUES(Now(), 10001);
SELECT * FROM orders_log;
截图:
2) DELETE触发器
语句:
CREATE TABLE archive_orders
(
order_num int NOT NULL,
order_date datetime NOT NULL ,
cust_id int NOT NULL
) ENGINE=InnoDB;
CREATE TRIGGER deleteorder BEFORE DELETE ON orders
FOR EACH ROW
BEGIN
INSERT INTO orders_log(changed_on, change_type, order_num)
VALUES(Now(),‘D’, OLD.order_num);
INSERT INTO archive_orders(order_num, order_date, cust_id)
VALUES(OLD.order_num, OLD.order_date, OLD.cust_id);
END;
截图:
语句:
INSERT INTO orders(order_date, cust_id) VALUES(Now(), 10001);
SELECT * FROM orders_log;
SELECT * FROM archive_ orders;
截图:
3) UPDATE触发器
语句:
CREATE TRIGGER updatevendor BEFORE UPDATE ON vendors
FOR EACH ROW SET NEW.vend_state = Upper(NEW.vend_state);
CREATE TRIGGER updateORDER BEFORE UPDATE ON ORDERS
FOR EACH ROW
BEGIN
INSERT INTO orders_log(changed_on, change_type, order_num)
VALUES(Now(),‘U’, OLD.order_num);
SET NEW.ORDER_DATE = NOW();
END;
截图:
语句:
UPDATE orders SET cust_id=’10006’ WHERE cust_id=’10005’;
SELECT * FROM orders_log;
SELECT * FROM orders;
截图:
第二部分:所选课题数据库的应用
1)INSERT 触发器
语句:
CREATE TABLE orders_log
(
change_id int NOT NULL AUTO_INCREMENT,
change_type char(1) NOT NULL ,
order_num int NOT NULL ,
PRIMARY KEY (change_id)
) ENGINE=INNODB;
CREATE TRIGGER neworder AFTER INSERT ON movies
FOR EACH ROW
BEGIN
INSERT INTO orders_log(change_type, order_num)
VALUES(‘A’, NEW.year);
END;
截图:
语句:
INSERT INTO movies(year)
VALUES(1980);
SELECT * FROM orders_log;
截图:
2) DELETE触发器
语句:
CREATE TABLE archive_orders
(
year int NOT NULL,
length int NOT NULL
) ENGINE=InnoDB;
CREATE TRIGGER deleteorder BEFORE DELETE ON movies
FOR EACH ROW
BEGIN
INSERT INTO orders_log(change_type, order_num)
VALUES(‘D’, OLD.year);
INSERT INTO archive_orders(year,length)
VALUES(OLD.year, OLD.length);
END;
截图:
语句:
INSERT INTO movies(year) VALUES(118);
SELECT * FROM orders_log;
SELECT * FROM archive_ orders;
截图:
3) UPDATE触发器
语句:
CREATE TRIGGER updatevendor BEFORE UPDATE ON studio
FOR EACH ROW SET NEW.name = Upper(NEW.name);
CREATE TRIGGER updateORDER BEFORE UPDATE ON MOVIES
FOR EACH ROW
BEGIN
INSERT INTO orders_log(change_type, order_num)
VALUES(‘U’, OLD.year);
SET NEW.name = NOW();
END;
UPDATE movies SET year=’1980’ WHERE year=’1977’;
SELECT * FROM orders_log;
SELECT * FROM movies;
截图:
数据库系统实训——实验七——触发器相关推荐
- 数据库系统实训——实验二——单表查询
一.第四章-检索数据 题号:1 SQL语句描述:select prod_name from products; 查询功能描述:检索单个列 执行结果截图: 二.第五章-排序数据 题号:1 SQL语句描述 ...
- 数据库系统实训——实验十——事务
第一部分:样例库的应用 事件处理: 1)关闭自动提交功能 语句: update vendors set vend_name='New' where vend_id=1001; select * fro ...
- 数据库系统实训——实验九——函数
第一部分:样例库的应用 1)字符串类(文本处理函数) 语句: select cust_name,cust_contact from customers where SOUNDEX(cust_conta ...
- 数据库系统实训——实验八——数据库维护
第一部分:样例库的应用 1) 使用MYSQLDUMP命令备份数据库 mysqldump -u root -p shujukuziyuan >D:/mysql/shujukuzioyuan.sql ...
- 数据库系统实训——实验六——游标
第一部分:样例库的应用 1)创建游标 语句: CREATE PROCEDURE processorders() BEGIN DECLARE ordernumbers CURSOR FOR SELECT ...
- 数据库系统实训——实验五——存储过程
第一部分:样例库的应用 1)Creating Stored Procedures(创建) CREATE PROCEDURE productpricing( ) BEGINSELECT Avg(prod ...
- 数据库系统实训——实验四——视图
第一部分:样例库的应用 1) 利用视图简化复杂的查询(联结) CREATE VIEW productcustomers AS SELECT cust_name, cust_contact,prod_i ...
- 数据库系统实训——实验三——子查询与组合查询
一.子查询与组合查询 题号:1 SQL语句描述: /SELECT ORDER_NUM FROM ORDERITEMS where prod_id='tnt2';/ /select cust_id fr ...
- 数据库系统实训——实验一——系统安装与数据库搭建
一.VM的安装与虚拟操作系统的安装:(简单过程与结果截图) 下载并安装安装包,下载虚拟操作系统镜像 二.MYSQL或SQL SERVER的安装:(简单过程与结果截图) 下载安装安装包,配置系统变量 三 ...
最新文章
- html哪个属性不会脱离文档流,html 在不给高的时候使用float为什么下面的文档会脱离文档流...
- Java多线程-生产者与消费者
- mysql主从架构升级_实战项目——mysql主从架构的实现
- __attribute__((regparm(number))):函数通过number个寄存器传递参数,否则通过堆栈
- Pytorch——DataLoader(批训练)
- Android应用程序中的多个Activity的显示创建和调用
- 简述AI技术的工程部署
- linux下iftop安装使用
- Vissim安装及配置详解
- Excel的数据导入到PB的DW中
- 微信小程序弹出框详解
- (3/3) 在 Cocos creator 中使用 steam api , steam 成就
- 网盘资源搜索神器,只有你想不到没有你搜不到的,老司机必备!
- 互联网日报 | 前11月全国网购超10万亿元;B站8月月活首次突破2亿;华为Mate40标准版开启预售...
- PROFINET 建立连接的原理
- 开始学习英语的七个步骤。
- Excel中怎么添加批注
- Red5 流媒体技术(初级了解)
- Virtualbox上openSUSE 15.2 Leap安装guest additions
- 用支付宝如何自己拍证件照?