mysql【存储过程】【触发器】
触发器学习链接:https://www.runoob.com/w3cnote/mysql-stored-procedure.html
示例#
前#
show databases;
-- 创建表test2
create table test2 (
s_id INT primary key,
s_name VARCHAR(32),
s_age INT
);
-- 插入
insert into test2 (s_name,s_age) values ('周英杰',20); -- 没有设置自增或者默认值的话会报错
insert into test2 (s_name,s_age) values
('孟子恒',20),
('张艺卓',20),
('段青垚',21);
insert into test2 (s_name,s_age) values ('马俊杰',21),('张馨元',20);
-- 给s_id添加自增
alter table test2 modify s_id INT AUTO_INCREMENT; -- primary key保留着
-- alter table test2 add constraint auto_increment_s_id auto_increment (s_id); 语法不对
-- 查看表结构
DESCRIBE test2;
存储过程#
-- 定义存储过程
-- BEGIN .... END:存储过程开始和结束符号:
delimiter $$ -- 作用:这是改变命令结束符;为$$
create procedure ShowTest2Students()
begin
SELECT * from test2; -- 需要加;
end$$
delimiter ; -- 恢复默认分隔符
-- 展示已有的存储过程
SHOW PROCEDURE STATUS;
-- 删除存储过程
DROP PROCEDURE IF EXISTS ShowTest2Students;
-- 调用存储过程
call ShowTest2Students();
触发器#
-- 定义触发器
-- 触发器通常用于更新或插入数据,不支持执行 SELECT 或其他查询操作来返回结果给客户端
create trigger after_test2_delete
after delete on test2
for each row
begin
insert into student (s_name,s_age) values ('匿名用户',100); -- 正确
-- UPDATE test2 set s_age=22; -- 不能对同表进行操作
end;
-- 查看现有触发器
SHOW TRIGGERS;
-- 删除触发器
DROP TRIGGER IF EXISTS after_test2_delete;
-- 测试触发器
delete from test2
where s_id=3;
/*
报错:MySQL 不允许在触发器内部直接修改触发器所作用的表,因为这样会导致递归触发,触发器本身会再次被激活,导致死锁或无限循环
解决:1.使用另一个表记录操作 2.避免在触发器中直接更新触发的表:
*/
后#
-- 删除
delete from test2 where s_name='匿名用户';
-- 查询所有
select * from test2;
-- 更新
UPDATE test2 set s_age=21;
作者:cloud-2-jane
出处:https://www.cnblogs.com/cloud-2-jane/articles/18649901
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架