您当前的位置:首页 > 互联网教程

mysql数据库事务是什么,能简单定义一下吗

发布时间:2025-05-23 04:59:12    发布人:远客网络

mysql数据库事务是什么,能简单定义一下吗

一、mysql数据库事务是什么,能简单定义一下吗

1、在创建表的时候create table xxxx(..........) engine innoDB;后一句表示创建引擎类型为innoDB,它支持事务,

2、开启一个事务: start transaction;

3、然后你写你的sql语句,无论你写多少,只要没提交事务,这个事务就存在,有commit显式提交,还有隐式提交,你觉得你写的sql语句没有问题时就,你就commit;提交这个事务;如果前面你写的sql语句出了问题,比如有条sql语句是批量改金币什么的,改多了。 Rollback;回滚,意思是回到你开启事务时的状态,就是说你开启事务后的所有sql操作当作没有发生,你重新来过。

4、注意:当一个事务commit,或者rollback就结束了

二、Mysql数据库中,事务是指什么如何使用该功能

什么是事务? \x0d\x0a\x0d\x0a事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务 \x0d\x0a\x0d\x0a注意:mysql数据支持事务,但是要求必须是innoDB存储引擎 \x0d\x0a\x0d\x0a解决这个问题: \x0d\x0a\x0d\x0amysql的事务解决这个问题,因为mysql的事务特性,要求这组操作,要不全都成功,要不全都失败,这样就避免了某个操作成功某个操作失败。利于数据的安全 \x0d\x0a\x0d\x0a如何使用: \x0d\x0a\x0d\x0a(1)在执行sql语句之前,我们要开启事务 start transaction; \x0d\x0a\x0d\x0a(2)正常执行我们的sql语句 \x0d\x0a\x0d\x0a(3)当sql语句执行完毕,存在两种情况: \x0d\x0a\x0d\x0a1,全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,committ \x0d\x0a\x0d\x0a2,某些sql语句失败,我们执行rollback(回滚),将对数据库操作赶紧撤销 \x0d\x0a\x0d\x0a(注意:mysql数据支持事务,但是要求必须是innoDB存储引擎) \x0d\x0amysql> create table bank(name varchar(20),money decimal(5,1))engine=innodb defau \x0d\x0alt charset=utf8; \x0d\x0a\x0d\x0amysql> inset into bank values('shaotuo',1000),('laohu',5000); \x0d\x0a\x0d\x0amysql> select*from bank; \x0d\x0a+---------+--------+ \x0d\x0a| name| money| \x0d\x0a+---------+--------+ \x0d\x0a| shaotuo| 1000.0| \x0d\x0a| laohu| 5000.0| \x0d\x0a+---------+--------+ \x0d\x0a\x0d\x0a------没有成功“回滚”执行rollback \x0d\x0amysql> start transaction;//开启事务 \x0d\x0aQuery OK, 0 rows affected(0.00 sec) \x0d\x0a\x0d\x0amysql> update bank set money=money+500 where name='shaotuo'; \x0d\x0aQuery OK, 1 row affected(0.00 sec) \x0d\x0aRows matched: 1 Changed: 1 Warnings: 0 \x0d\x0a\x0d\x0amysql> update bank set moey=money-500 where name='laohu'; \x0d\x0aERROR 1054(42S22): Unknown column'moey' in'field list' \x0d\x0amysql> rollback;//只要有一个不成功,执行rollback操作 \x0d\x0aQuery OK, 0 rows affected(0.01 sec) \x0d\x0a\x0d\x0amysql> select*from bank; \x0d\x0a+---------+--------+ \x0d\x0a| name| money| \x0d\x0a+---------+--------+ \x0d\x0a| shaotuo| 1000.0| \x0d\x0a| laohu| 5000.0| \x0d\x0a+---------+--------+ \x0d\x0a------成功之后进行commit操作 \x0d\x0amysql> start transaction;//开启事务 \x0d\x0aQuery OK, 0 rows affected(0.00 sec) \x0d\x0a\x0d\x0amysql> update bank set money=money+500 where name='shaotuo'; \x0d\x0aQuery OK, 1 row affected(0.01 sec) \x0d\x0aRows matched: 1 Changed: 1 Warnings: 0 \x0d\x0a\x0d\x0amysql> update bank set money=money-500 where name='laohu'; \x0d\x0aQuery OK, 1 row affected(0.00 sec) \x0d\x0aRows matched: 1 Changed: 1 Warnings: 0 \x0d\x0a\x0d\x0amysql> commit;//两个都成功后执行commit(只要不执行commit,sql语句不会对真实的数据库造成影响) \x0d\x0aQuery OK, 0 rows affected(0.05 sec) \x0d\x0a\x0d\x0amysql> select*from bank; \x0d\x0a+---------+--------+ \x0d\x0a| name| money| \x0d\x0a+---------+--------+ \x0d\x0a| shaotuo| 1500.0| \x0d\x0a| laohu| 4500.0| \x0d\x0a+---------+--------+

三、安装MySQL事务数据库都需要哪些步骤

安装MySQL完成后,启动MySQL(和PHP搭配之最佳组合)binWinMySQL(和PHP搭配之最佳组合)admin

MySQL(和PHP搭配之最佳组合)binmydqld-nt--remove

MySQL(和PHP搭配之最佳组合)binMySQL(和PHP搭配之最佳组合)d-max-nt--install

以上二行是去掉不支持事务处理的MySQL(和PHP搭配之最佳组合)服务,改成支持MySQL(和PHP搭配之最佳组合)事务处理的服务

然后在c:下建一个ibdata目录及iblogs目录,当然名字可以不一样,记住这二个名字及盘符,以后要用到,你也可以不建在C盘,然后,打开c:winnt或c:windows目录下的my.ini,在最后添加:以下内容为程序代码:

1.innodb_data_file_path=ibdata1:2000M;ibdata2:2000M

2.innodb_data_home_dir=c:ibdata

3.set-variable=innodb_mirrored_log_groups=1

4.innodb_log_group_home_dir=c:iblogs

5.set-variable=innodb_log_files_in_group=3

6.set-variable=innodb_log_file_size=30M

7.set-variable=innodb_log_buffer_size=8M

8.innodb_flush_log_at_trx_commit=1

9.innodb_log_arch_dir=c:iblogs

11.set-variable=innodb_buffer_pool_size=80M

12.set-variable=innodb_additional_mem_pool_size=10M

13.set-variable=innodb_file_io_threads=4

14.set-variable=innodb_lock_wait_timeout=50

1.innodb_data_file_path=ibdata1:2000M;ibdata2:2000M这一行中的2000M可以自己改成200m,看你盘的容量大小,MySQL(和PHP搭配之最佳组合)推荐10G及以上的硬盘空间最好用这样的设置;

1.innodb_data_home_dir=c:ibdata也可以改成你自己起的目录,主要是看你自己在刚才建的目录在哪里啦

按照以上的方法,你已经安装MySQL好了MySQL(和PHP搭配之最佳组合)的事务数据库,不过你要是按照MySQL(和PHP搭配之最佳组合)手册上的方法安装,把上面的一段配制放到my.cnf是去的话,可是会出错哦

好了,现在让我们试试看是不是安装完成了,启动apache(Unix平台最流行的WEB服务器平台),或iis,在服务里启动MySQL(和PHP搭配之最佳组合)的服务,打开phpmyadmin,输入:SHOWvariableslikehave_%

你要是看到下面的结果,那说明你安装MySQL成功了

9.注:MySQL(和PHP搭配之最佳组合)的事务处理方法的使用同其它数据库语法相似,在这里我就不多说了,另外,MySQL(和PHP搭配之最佳组合)将在4.3中实现外键及子查询,简单的外键已经在4.0中都已经实现了,只是不怎么方便,相信以后会做得更好些。