MySQL事务和触发器

本文介绍了MySQL事务的四大特性:原子性、一致性、隔离性和持久性,详细讲解了事务的处理方法,包括BEGIN、ROLLBACK、COMMIT的使用及自动提交模式的设置。此外,还阐述了触发器的概念,它是数据库监视特定表的事件(如INSERT、UPDATE、DELETE)并自动执行相应操作的存储过程,常用于数据完整性和业务规则的维护。触发器创建涉及监视地点、事件、触发时间和事件类型四个要素。

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

事务:具有原子性、一致性、隔离性和持久性

原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

MYSQL 事务处理主要有两种方法:

1、用 BEGIN, ROLLBACK, COMMIT来实现     

BEGIN 开始一个事务     

ROLLBACK 事务回滚     

COMMIT 事务确认

2、直接用 SET 来改变 MySQL 的自动提交模式:     

SET AUTOCOMMIT=0 禁止自动提交     SET AUTOCOMMIT=1 开启自动提交

CREATE TABLE runoob_transaction_test( id int(5)) engine=innodb;  # 创建数据表

select * from runoob_transaction_test;

begin;  # 开始事务

insert into runoob_transaction_test value(5);

insert into runoob_transaction_test value(6);

commit; # 提交事务

select * from runoob_transaction_test;

触发器:

触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行。

触发器经常用于加强数据的完整性约束和业务规则等。 触发器创建语法四要素:

1.监视地点(table)  

2.监视事件(insert/update/delete)  

3.触发时间(after/before)  

4.触发事件(insert/update/delete)

代码如下:

create trigger ins_stu  
after insert on student for each row   
begin  
      insert into cj ( stu_id, stu_name)  
        values( new.stuid, new.username);  
end;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值