第一部分:样例库的应用
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. 数据库系统实训——实验二——单表查询

    一.第四章-检索数据 题号:1 SQL语句描述:select prod_name from products; 查询功能描述:检索单个列 执行结果截图: 二.第五章-排序数据 题号:1 SQL语句描述 ...

  2. 数据库系统实训——实验十——事务

    第一部分:样例库的应用 事件处理: 1)关闭自动提交功能 语句: update vendors set vend_name='New' where vend_id=1001; select * fro ...

  3. 数据库系统实训——实验九——函数

    第一部分:样例库的应用 1)字符串类(文本处理函数) 语句: select cust_name,cust_contact from customers where SOUNDEX(cust_conta ...

  4. 数据库系统实训——实验八——数据库维护

    第一部分:样例库的应用 1) 使用MYSQLDUMP命令备份数据库 mysqldump -u root -p shujukuziyuan >D:/mysql/shujukuzioyuan.sql ...

  5. 数据库系统实训——实验六——游标

    第一部分:样例库的应用 1)创建游标 语句: CREATE PROCEDURE processorders() BEGIN DECLARE ordernumbers CURSOR FOR SELECT ...

  6. 数据库系统实训——实验五——存储过程

    第一部分:样例库的应用 1)Creating Stored Procedures(创建) CREATE PROCEDURE productpricing( ) BEGINSELECT Avg(prod ...

  7. 数据库系统实训——实验四——视图

    第一部分:样例库的应用 1) 利用视图简化复杂的查询(联结) CREATE VIEW productcustomers AS SELECT cust_name, cust_contact,prod_i ...

  8. 数据库系统实训——实验三——子查询与组合查询

    一.子查询与组合查询 题号:1 SQL语句描述: /SELECT ORDER_NUM FROM ORDERITEMS where prod_id='tnt2';/ /select cust_id fr ...

  9. 数据库系统实训——实验一——系统安装与数据库搭建

    一.VM的安装与虚拟操作系统的安装:(简单过程与结果截图) 下载并安装安装包,下载虚拟操作系统镜像 二.MYSQL或SQL SERVER的安装:(简单过程与结果截图) 下载安装安装包,配置系统变量 三 ...

最新文章

  1. html哪个属性不会脱离文档流,html 在不给高的时候使用float为什么下面的文档会脱离文档流...
  2. Java多线程-生产者与消费者
  3. mysql主从架构升级_实战项目——mysql主从架构的实现
  4. __attribute__((regparm(number))):函数通过number个寄存器传递参数,否则通过堆栈
  5. Pytorch——DataLoader(批训练)
  6. Android应用程序中的多个Activity的显示创建和调用
  7. 简述AI技术的工程部署
  8. linux下iftop安装使用
  9. Vissim安装及配置详解
  10. Excel的数据导入到PB的DW中
  11. 微信小程序弹出框详解
  12. (3/3) 在 Cocos creator 中使用 steam api , steam 成就
  13. 网盘资源搜索神器,只有你想不到没有你搜不到的,老司机必备!
  14. 互联网日报 | 前11月全国网购超10万亿元;B站8月月活首次突破2亿;华为Mate40标准版开启预售...
  15. PROFINET 建立连接的原理
  16. 开始学习英语的七个步骤。
  17. Excel中怎么添加批注
  18. Red5 流媒体技术(初级了解)
  19. Virtualbox上openSUSE 15.2 Leap安装guest additions
  20. 用支付宝如何自己拍证件照?

热门文章

  1. mysql使用navicat(建表前与建表后)添加时间戳(创建时间、自动更新时间)
  2. CentOS 6.5 下安装 Kibana5
  3. 曼哈顿距离最小生成树与莫队算法(总结)
  4. 数据库设计五要点 让数据库设计更加规范
  5. YII2 实现后台操作记录日志
  6. [工具]iperf测试带宽
  7. 九度1377缓变序列
  8. 解决Ajax返回的json数据乱码问题
  9. warframe计算机拒绝访问,Win10运行warframe出现蓝屏DRIVER_CORRUPTED_EXPOOL怎么办
  10. 2ab对应的c语言表达式是,编译原理 作业标准答案