最简单练习Mysql存储过程与触发器-菜鸟新手入门

Mysql最简单练习存储过程与触发器

遗忘了以前数据库学习的存储过程与触发器,现在写个文章练习记录一下

最简单练习存储过程与触发器

数据库Mysql

先新建两个表testlog与triggertime

CREATE TABLE `address`.`testlog` (
  `id` INT NOT NULL,
  `name` VARCHAR(45) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;

在这里插入图片描述

CREATE TABLE `address`.`triggertime` (
  `id` INT NOT NULL,
  `time` DATETIME NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;

在这里插入图片描述

触发器

逻辑功能上,Mysql触发器分为六种Before Insert、After Insert、Before Update、After Update、Before Delete、After Delete

新建一个insert_testLog触发器
本触发器的逻辑是在testlog表任意行被插入后在triggertime表中插入当前时间

DELIMITER $
CREATE TRIGGER insert_testLog AFTER INSERT ON address.testlog FOR EACH ROW
BEGIN
	insert into triggertime(id,triggertime.time) values(NEW.id,NOW());
END

执行一下插入

insert into address.testlog(id,name) values (2,'lisi');

可以看到触发器功能正确
在这里插入图片描述

存储过程

新建一个selectTriggerTime存储过程
本存储过程逻辑是查询triggertime里所有字段

DELIMITER /
	CREATE PROCEDURE selectTriggerTime() 
		begin 
			select * from triggertime; 
		end /

在这里插入图片描述
执行调用存储过程PROCEDURE

call address.selectTriggerTime();

可以看到返回结果,存储过程执行成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43596589/article/details/112766626