一、验证性实验
某同学定义产品信息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;
文章来源地址https://www.toymoban.com/news/detail-485073.html
文章来源:https://www.toymoban.com/news/detail-485073.html
到了这里,关于触发器的创建与管理实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!