在数据库中创建触发器

这篇博客详细介绍了如何在数据库中创建触发器,包括插入、更新和删除触发器。首先创建了test数据库和两个表格:student和log。接着为student表创建了三个触发器,分别对应插入、更新和删除操作,将操作记录到log表中。最后通过插入和更新数据来测试触发器是否正常工作,并展示了查看和获取触发器创建语句的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.创建数据库。

1.创建test数据库,字符编码采用utf8mb4 执行语句:CREATE TABLE test CHARSET='utf8mb4';

二,创建学生表

1.创建student表,包含id、name、gender、age,插入至少5条记录。

三,创建日志表

1.创建t-log表,执行语句:CREATE TABLE log (id INT PRIMARY KEY AUTO_INCREMENT,time TIMESTAMP,operation VARCHAR(10),detail VARCHAR(50));包含id、time、operation、detail。

 

 

四、创建触发器

1、创建插入触发器

  • 针对student创建插入触发器 trigger_insert  执行语句:CREATE TRIGGER trigger_insert

        AFTER INSERT ON student FOR EACH ROW
        INSERT INTO log (time,operation, detail)
                VALUES (NOW(),'INSERT',CONCAT('新记录: ', NEW.id, NEW.gender, NEW.age));

2.创建更新触发器

  •  针对student创建插入触发器 trigger_update  执行命令:CREATE TRIGGER trigger_update
            AFTER UPDATE ON student FOR EACH ROW
            INSERT INTO log (time,operation, detail)
                    VALUES (NOW(),'UPDATE',CONCAT('(',
                            OLD.id, OLD.name, OLD.gender, OLD.age,')',
                            '->','(',NEW.id, NEW.name, NEW.gender, NEW.age, ')'));
                        

 3.创建删除触发器

 针对student创建插入触发器 trigger_delete  执行命令:CREATE TRIGGER trigger_delete
        AFTER DELETE ON student FOR EACH ROW
        INSERT INTO log (time,operation, detail)
                VALUES (NOW(),'DELETE',CONCAT('旧记录: ',OLD.id,OLD.name, OLD.gender,OLD.age));

        

(五) 查看触发器

 1、查看创建的全部触发器

执行命令:SHOW TRIGGERS;

 2.创建触发器的创建语句

(1)查看插入触发器的语句  执行命令:SHOW CREATE TRIGGER trigger_insert;

 3. 查看删除触发器的创建语句

执行命令:SHOW CREATE TRIGGER trigger_delete;

(六) 测试触发器

1、测试插入触发器

插入一条新记录,执行语句:insert into student(name, gender, age) VALUES('方小二','女',12);

为了测试插入触发器是否生效,我们只需要检查日志表

 

 2、 测试更新触发器

更新第六条记录 执行语句:

为了测试插入触发器是否生效,我们只需要检查日志表

 (1)删除插入触发器

 

 (2).删除更新触发器

(3).删除--触发器

 

 此时,执行命令:SHOW TRIGGERS;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值