0


触发器的创建与管理实验

一、验证性实验
某同学定义产品信息product表,主要信息有:产品编号、产品名称、主要功能、生产厂商、c厂商地址,生成product表的SQL代码如下:
CREATE TABLE product (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
function VARCHAR(50) ,
company VARCHAR(20) NOT NULL,
address VARCHAR(50)
);
在这里插入图片描述
在对product表进行数据操作时,需要对操作的内容和时间进行记录。于是定义了operate表,其表生成SQL语句为:
CREATE TABLE operate (
op_id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,
op_name VARCHAR(20) NOT NULL ,
op_time TIME NOT NULL
);
在这里插入图片描述
请完成如下任务:
1.在product表上分别创建BEFORE INSERT、AFTER UPDATE和AFTER DELETE3个触发器,触发器的名称分别为Tproduct_bf_insert、Tproduct_af_update和Tproduct_af_del。执行语句部分都是向operate表插入操作方法和操作时间。
(1)创建Tproduct_bf_insert触发器SQL代码如下:
CREATE TRIGGER Tproduct_bf_insert BEFORE INSERT
ON product FOR EACH ROW
INSERT INTO operate VALUES(null, ‘Insert product’, now());
在这里插入图片描述
(2)创建Tproduct_af_update触发器的SQL代码如下:
CREATE TRIGGER Tproduct_af_update AFTER UPDATE
ON product FOR EACH ROW
INSERT INTO operate VALUES(null, ‘Update product’, now());
在这里插入图片描述
(3)创建Tproduct_af_del触发器的SQL代码如下:
CREATE TRIGGER Tproduct_af_del AFTER DELETE
ON product FOR EACH ROW
INSERT INTO operate VALUES(null, ‘delete product’, now());
在这里插入图片描述
2.对product表分别执行INSERT、UPDATE和DELETE操作,分别查看operate表。
(1)对product表中插入一条记录:1, ‘abc’,‘治疗感冒’, ‘北京abc制药厂’,‘北京市昌平区’
SQL代码:INSERT INTO product VALUES(1, ‘abc’,‘治疗感冒’, ‘北京abc制药厂’,‘北京市昌平区’);
在这里插入图片描述
(2)更新记录,将产品编号为1的厂商住址:改为“北京市海淀区”。
SQL代码:UPDATE product SET address=‘北京市海淀区’ WHERE id=1;
在这里插入图片描述
(3)删除产品编号为1的记录。
SQL代码:DELETE FROM product WHERE id=1;
在这里插入图片描述
3.删除Tproduct_bf_update触发器
DROP TRIGGER Tproduct_bf_insert;
在这里插入图片描述
二、设计性实验
1.在product表上分别创建AFTER INSERT、BEFORE UPDATE和BEFORE DELETE 3个触发器, 触发器的名称分别为product_af_insert、product_af_update和Tproduct_bf_del。执行语句部分都是向operate表中插入操作方法和操作时间。
create trigger product_af_insert after insert
on product for each row
insert into operate values(null,‘insert product’,now());
在这里插入图片描述
create trigger product_af_update before insert
on product for each row
insert into operate values(null,‘update product’,now());
在这里插入图片描述
create trigger product_bf_del before insert
on product for each row
insert into operate values(null,‘delete product’,now());
在这里插入图片描述
2.查看product_bf_del触发器的基本结构。
show triggers;
在这里插入图片描述
3.对product表分别执行如下INSERT、UPDATE和DELETE操作,分别查看operate表。
INSERT INTO product VALUES(2, ‘止血灵’,‘止血’, ‘北京止血灵制药厂’,‘北京市昌平区’);
在这里插入图片描述
UPDATE product SET address=‘天津市开发区’ WHERE id=2;
在这里插入图片描述
DELETE FROM product WHERE id=2;
在这里插入图片描述
在这里插入图片描述
4.删除product_bf_update触发器。
drop trigger product_bf_update;
在这里插入图片描述

标签: 数据库 mysql

本文转载自: https://blog.csdn.net/m0_55726741/article/details/129248831
版权归原作者 蕤蕊 所有, 如有侵权,请联系我们删除。

“触发器的创建与管理实验”的评论:

还没有评论