MySQL 触发器的作用
MySQL 触发器是一种数据库对象,它允许在表上的特定事件(例如 INSERT、UPDATE 或 DELETE)发生时自动执行一组 SQL 语句。
触发器有哪些作用?
触发器有以下主要作用:
维护数据完整性:触发器可以确保表中的数据始终保持特定规则,例如确保列的唯一性或值域限制。 自动执行任务:触发器可以在数据修改后自动执行诸如发送电子邮件、更新其他表或调用存储过程等任务。 实现业务逻辑:触发器可以用于实现复杂的业务逻辑,这些逻辑可能难以或不可能通过简单的 SQL 语句来实现。 提高性能:触发器可以通过避免在每个数据修改语句中重复执行相同的任务来提高性能。触发器的结构
一个触发器由以下部分组成:
触发类型:指定在哪个事件上触发触发器,例如 INSERT、UPDATE 或 DELETE。 触发时间:指定是在事件之前(BEFORE)还是之后(AFTER)触发触发器。 触发体:包含要执行的 SQL 语句的触发器代码块。使用触发器
要创建触发器,可以使用以下语法:
<code class="sql">CREATE TRIGGER trigger_name BEFORE/AFTER [INSERT|UPDATE|DELETE] ON table_name FOR EACH ROW BEGIN -- 触发器代码 END;</code>
示例
以下触发器确保表
users中的
username列始终唯一:
<code class="sql">CREATE TRIGGER unique_username BEFORE INSERT ON users
FOR EACH ROW
BEGIN
IF EXISTS (SELECT 1 FROM users WHERE username = NEW.username) THEN
SIGNAL SQLSTATE '23000' SET MESSAGE_TEXT = 'Username already exists';
END IF;
END;</code> 