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();
可以看到返回结果,存储过程执行成功