当前位置: 首页 > news >正文

MySQL练习3

创建mydb16_trigger数据库,建立product表,操作方式operate表

(1)创建mydb16_trigger数据库

create database mydb16_trigger;        //创建数据库

use mydb16_trigger;        //进入数据库

(2)创建product表

product表
字段名字段描述数据类型主键外键非空唯一自增
id产品编号Int(10)
name产品功能Varchar(20)
func主要功能Varchar(20)
com生产厂家Varchar(20)
address家庭住址Varchar(20)

create table product(id int(10) primary key comment '产品编号',name varchar(20) not null comment '产品功能',func varchar(20) comment '主要功能',com varchar(20) not null comment '生产厂家',address varchar(20) comment '家庭住址');       

//创建product表

desc product;        //查看product表属性

(3)创建operate表

operate表
字段名字段描述数据类型主键外键非空唯一自增
op_id编号Int(10)
op_type操作方式Varchar(20)
op_time操作时间Varchar(20)

create table operate(op_id int(10) primary key auto_increment comment '编号',op_type varchar(20) not null comment '操作方式',op_time varchar(20) not null comment '操作时间');

//创建operate表

desc operate;        //查看operate表属性

(4)插入product数据

insert into product(id,name,func,com,address) values
(1,'智能手机','通讯','华为','广东省深圳市'),
(2,'笔记本电脑','办公','联想',''),
(3,'智能手表','健康监测','小米','北京市昌平区');

select * from product;        //查看product表数据

 

- 创建触发器,每次激活触发器后,都会更新operate表
- 创建product_after_insert_trigger 
- 创建product_after_update_trigger
- 创建product_after_delete_trigger
- 执行语句向operate表插入操作方法

  1.定义触发器实现在产品表(product)中每多一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。

delimiter $$        //将结束字符改为“$$”

create trigger product_after_insert_trigger after insert
on product for each row
begin
insert into operate(op_type,op_time)
values(concat('新增产品',new.id),now());
end$$

//create trigger--创建触发器,product_after_insert_trigger--“插入”触发器名,after insert on product--在product表每次插入数据后触发,for each row--每行数据执行一次,begin--需执行的代码开始,values--返回插入值,concat--拼接操作类型和产品ID,insert用new.id,now()--插入时时间,end--需执行的代码结束

select * from information_schema.triggers
where trigger_name='product_after_insert_trigger'\G

//查看触发器属性,information_schema--元数据,triggers--存储触发器的系统视图,\G--结束符(多行显示数据)

insert into product(id,name,func,com,address) values
(4,'无线耳机','','索尼','')$$

//执行insert,新插入product数据

select * from product$$        //查看product表数据

select * from operate$$        //查看operate表数据

注:如果需要删除触发器

drop trigger product_after_insert_trigger$$

  2.定义触发器实现在产品表(product)中每更新一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。

create trigger product_after_update_trigger after update
on product for each row
begin
insert into operate(op_type,op_time)
values(concat('更新产品',old.id),now());
end$$

//create trigger--创建触发器,product_after_update_trigger--“更新”触发器名,after update on product--在product表每次更新数据后触发,for each row--每行数据执行一次,begin--需执行的代码开始,values--返回插入值,concat--拼接操作类型和产品ID,update可以用new.id和old.id,now()--插入时时间,end--需执行的代码结束

select * from information_schema.triggers
where trigger_name='product_after_update_trigger'\G

update product set address='北京市海淀区' where id=2$$

//执行update,更新product数据

select * from product$$

select * from operate$$

  3.定义触发器实现在产品表(product)中每删除一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。

create trigger product_after_delete_trigger after delete
on product for each row
begin
insert into operate(op_type,op_time)
values(concat('删除产品',old.id),now());
end$$

//create trigger--创建触发器,product_after_delete_trigger--“删除”触发器名,after delete on product--在product表每次删除数据后触发,for each row--每行数据执行一次,begin--需执行的代码开始,values--返回插入值,concat--拼接操作类型和产品ID,delete用old.id,now()--删除时时间,end--需执行的代码结束

select * from information_schema.triggers
where trigger_name='product_after_delete_trigger'\G

delete from product where id=3$$

//执行delete,删除product表数据

select * from product$$

select * from operate$$

delimiter ;        //将结束字符给回“;”

http://www.dtcms.com/a/288428.html

相关文章:

  • 轻松上手:从零开始启动第一个 Solana 测试节点
  • 小架构step系列19:请求和响应
  • Redis字符串操作指南:从入门到实战应用
  • 81、【OS】【Nuttx】【启动】caller-saved 和 callee-saved 示例:压栈内容
  • MC0462最后一难
  • Redis进阶--集群
  • C study notes[1]
  • LVS技术知识详解(知识点+相关实验部署)
  • simulink系列之模型接口表生成及自动连线脚本
  • 消息队列:数字化通信的高效纽带
  • SQL Server和PostgreSQL填充因子
  • HCIA综合实验
  • string【下】- 内功修炼(搓底层)
  • C++入门--lesson4
  • CCF编程能力等级认证GESP—C++6级—20250628
  • ICT测试原理之--什么是假短
  • 基于opencv的人脸识别考勤系统
  • 人工智能与心理史学:从阿西莫夫的科幻预言到可计算社会模型>
  • Chris Fraser | 中国早期思想中墨家与荀子的知识论
  • 【完整代码】融合时序轨迹与49维特征反演的双色球开奖预测模型:一项关于隐藏规律的探索
  • Maven常用知识总结
  • Docker容器原理和启动策略
  • 传统浏览器过时了?Dia如何用AI重新定义上网体验
  • 零基础学习性能测试第二章-linux服务器监控:内存监控
  • 【60】MFC入门到精通——运行后 button按键上不显示 按键名, 控件上的文字不显示
  • 阶段1--Linux存储管理
  • Codeforces Round 1037(Div3)
  • 【web安全】万能密码
  • 车载诊断架构 --- OEM对于DTC相关参数得定义
  • 计算机网络1.1:计算机网络在信息时代的作用