MySql 触发器
mysql 触发器
2023-09-11 14:18:14 时间
⒈是什么?
触发器就是某个表发生一个事件(增删改操作),然后自动的执行预先编译好的SQL语句,执行相关操作。触发器事件跟触发器中的SQL语句是原子性的(要么同时执行,要么同时不执行),这样保证了数据的完整性。
⒉创建触发器
1.语法
drop trigger if exists databaseName.tri_Name; create trigger tri_Name -- tri_Name代表触发器名称 tirgger_time trigger_event on tableName -- tirgger_time为触发时机,可选值有after/before,trigger_event为触发事件,可选值有insert/update/delete for each row -- 这句话在mysql是固定的,表示任何一条记录上的操作满足触发事件都会触发该触发器。 begin sql语句; end
2示例
①insert类型触发器
1 drop trigger if exists study.tgr_users_insert; 2 create trigger tgr_users_insert 3 before insert on users 4 for each row 5 begin 6 set new.username='fanqi'; -- NEW用来表示将要(before)或已经(after)插入的新数据。 7 end;
②delete类型触发器
1 drop trigger if exists study.tgr_users_delete; 2 create trigger tgr_users_delete 3 before delete on users 4 for each row 5 begin 6 declare oldusername varchar(20) default 'fan'; 7 set oldusername = old.username; -- old用来表示将要或已经被删除的原数据。 8 end;
③update类型触发器
1 drop trigger if exists study.tgr_users_update; 2 create trigger tgr_users_update 3 before update on users 4 for each row 5 begin 6 declare oldusername varchar(20) default 'fan'; 7 set oldusername = old.username; -- old用来表示将要或已经被修改的原数据 8 set new.username= concat(oldusername,new.username); -- new用来表示将要或已经修改为的新数据 9 end;
⒊查看触发器
1 show triggers from databaseName;
⒋删除触发器
1 drop trigger if exists databaseName.tri_Name;
相关文章
- mysql-介绍、MySQL部署、数据类型、存储引擎
- Mac Pro 开机自启动 PHP-FPM,Nginx,MySql 等软件
- 磁盘爆满导致MySQL无法启动:Disk is full writing './mysql-bin.~rec~' (Errcode: 28). Waiting for someone to free space...
- 【MySQL】解决mysql的 1594 错误
- 【MySQL】常见的mysql 进程state
- 第二百八十四节,MySQL数据库-MySQL触发器
- MySQL选择数据库use与mysql_select_db使用详解
- 【问题解决方案】MySQL安装后无法启动-net start mysql服务名无效
- mysql 必知必会整理—触发器[十五]
- MySQL时间函数from_unixtime()date_format()unix_timestamp()now()使用说明
- connection to dat Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- ERROR 1130 Host is not allowed to connect to this MySQL server 问题解决
- [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
- MySQL内核月报 2015.02-PgSQL · 特性分析· Replication Slot
- 【收藏】windows下 Mysql 错误 Can‘t open and lock privilege tables: Table ‘mysql.user‘ doesn‘t exist
- MySQL用户权限(Host,User,Password)管理(mysql.user)
- 在一台电脑访问另一台电脑的mysql数据库
- 如何修改Xampp服务器上的mysql密码(图解)
- 安全测试===Mysql 注入技巧学习 MySQL注入技巧(1)
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
- Mysql报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- Mysql之mysqldump命令
- GinVueAdmin源码分析3-整合MySQL
- MySQL常用运算符详解
- 【MySQL基础知识】数据表操作
- MySQL 用户临时表
- MySQL-MHA高可用(一)
- MySQL数据库的使用(二)-表的增删改查