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

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;

最简单练习Mysql存储过程与触发器-菜鸟新手入门_第1张图片

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存储过程与触发器-菜鸟新手入门_第2张图片

触发器

逻辑功能上,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');

可以看到触发器功能正确
最简单练习Mysql存储过程与触发器-菜鸟新手入门_第3张图片

存储过程

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

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

最简单练习Mysql存储过程与触发器-菜鸟新手入门_第4张图片
执行调用存储过程PROCEDURE

call address.selectTriggerTime();

可以看到返回结果,存储过程执行成功
最简单练习Mysql存储过程与触发器-菜鸟新手入门_第5张图片

你可能感兴趣的:(数据库,触发器,mysql)