方法二:查询系统表 `INFORMATION_SCHEMA.TRIGGERS`
sql
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA = '你的数据库名';
此方法可以获取更详细的触发器定义信息,例如触发器的 SQL 语句。
2、创建触发器
语法:
sql
CREATE TRIGGER trigger_name
BEFORE|AFTER event_type ON table_name
FOR EACH ROW
BEGIN
触发器逻辑(如更新其他表、记录日志等)
END;
示例:在插入数据时自动更新计数器
sql
创建一个触发器,在向 users 表插入数据时,自动更新 counters 表的计数
CREATE TRIGGER update_user_count
AFTER INSERT ON users
FOR EACH ROW
BEGIN
UPDATE counters
SET user_count = user_count + 1
WHERE id = 1;
END;
6、实用场景示例
记录操作日志
sql
CREATE TRIGGER log_user_updates
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
INSERT INTO user_logs (user_id, old_value, new_value, updated_at)
VALUES (OLD.id, OLD.email, NEW.email, NOW());
END;
维护冗余字段
sql
CREATE TRIGGER calculate_total_price
BEFORE INSERT ON orders
FOR EACH ROW
BEGIN
SET NEW.total_price = NEW.quantity * NEW.unit_price;
END;