正文
怎么让mysql支持事务 mysql如何支持事物
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
mysql 增删改查操作哪些是支持事务的
MySQL的数据库引擎必须设置成InnoDB类型才是支持事务的,设置为InnoDB后增、删、改都是可以通过事务控制,其他数据库引擎不支持事务。
查看数据库引擎方法:
在显示结果里参数engine后面的就表示该表当前用的存储引擎
mysql
show
create
table
表名;
如何设置 mysql 事务类型
MYSQL--事务处理
事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
删除的SQL语句
delete from userinfo where ~~~
delete from mail where ~~
delete from article where~~
~~
如果没有事务处理,在你删除的过程中,假设出错了,只执行了第一句,那么其后果是难以想象的!
但用事务处理。如果删除出错,你只要rollback就可以取消删除操作(其实是只要你没有commit你就没有确实的执行该删除操作)
一般来说,在商务级的应用中,都必须考虑事务处理的!
MYSQL支持事务吗?
在缺省模式下,MYSQL是autocommit模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql是不支持事务的。
但是如果你的MYSQL表类型是使用InnoDB Tables 或 BDB tables的话,你的MYSQL就可以使用事务处理,使用SET AUTOCOMMIT=0就可以使MYSQL允许在非autocommit模式,
在非autocommit模式下,你必须使用COMMIT来提交你的更改,或者用ROLLBACK来回滚你的更改。示例如下:
START TRANSACTION;
mysql关于事物的常识
1. 如何安装MySQL事务数据库
MySQL数据库分二种类型,一种是传统的数据表格式,一种是支持事务处理的数据表格式(InnoDB,BDB,其中以InnoDB为主),下面我介绍一下关于MySQL事务处理数据库的安装及使用方法 你先要去下载一下Mysql max版的安装程序,下载地址: 按常规的方法进行安装 安装完成后,启动mysqlbinWinMySQLadmin 再退出 运行 mysqlbinmydqld-nt --remove mysqlbinmysqld-max-nt --install 以上二行是去掉不支持事务处理的mysql服务,改成支持mysql事务处理的服务 然后在c:下建一个ibdata目录及iblogs目录,当然名字可以不一样,记住这二个名字及盘符,以后要用到,你也可以不建在C盘,然后,打开c:winnt或c:windows目录下的my。
ini,在最后添加:[code] innodb_data_file_path = ibdata1:2000M;ibdata2:2000M innodb_data_home_dir = c:ibdata set-variable = innodb_mirrored_log_groups=1 innodb_log_group_home_dir = c:iblogs set-variable = innodb_log_files_in_group=3 set-variable = innodb_log_file_size=30M set-variable = innodb_log_buffer_size=8M innodb_flush_log_at_trx_mit=1 innodb_log_arch_dir = c:iblogs innodb_log_archive=0 set-variable = innodb_buffer_pool_size=80M set-variable = innodb_additional_mem_pool_size=10M set-variable = innodb_file_io_threads=4 set-variable = innodb_lock_wait_timeout=50 [/code] 其中 innodb_data_file_path = ibdata1:2000M;ibdata2:2000M 这一行中的2000M可以自己改成200m,看你盘的容量大小,mysql推荐10G及以上的硬盘空间最好用这样的设置; 以下这一行 innodb_data_home_dir = c:ibdata 也可以改成你自己起的目录,主要是看你自己在刚才建的目录在哪里啦 按照以上的方法,你已经安装好了mysql的事务数据库,不过你要是按照mysql手册上的方法安装,把上面的一段配制放到my。 f是去的话,可是会出错哦 好了,现在让我们试试看是不是安装完成了,启动apache,或iis,在服务里启动mysql的服务,打开myadmin,输入:SHOW variables like "have_%" 你要是看到下面的结果,那说明你安装成功了。
2. Windows下MySQL策略有哪些
本次活动将重点关注世界上最流行的开源数据库最新版本MySQL 5。
5,其在Windows上运行时能提供高达1500%的性能优势。 此次活动还将详细介绍,利用全新升级的MySQL企业版,Oracle如何超过Microsoft SQL Server,节省高达90%总体拥有成本,该企业版目前包括了建模、开发、监测、管理和基于Windows 的MySQL应用程序备份等的一整套可视化工具。
论坛将详细介绍对Windows用户和独立软件开发商的益处 利用在Windows平台上运行的MySQL企业版,甲骨文使客户能够大幅降低其在开发网络应用、部门级的应用和嵌入式应用软件的总体拥有成本。同时,借助甲骨文公司世界一流的24x7全天候服务支持,客户能实现更高的MySQL性能,跨平台的灵活性和提高管理。
首届MySQL on Windows在线论坛将阐述: 为什么MySQL on Windows既受企业用户也受嵌入式独立软件供应商的热烈欢迎。 MySQL为什么非常适合Windows环境,未来将会有什么样的里程碑以实现MySQL在Microsoft平台上更好运行。
哪些可视化工具可用来有效地开发、部署和管理MySQL on Windows的应用程序。 如何推出基于Windows平台上的MySQL高可用关键业务应用程序。
安全解决方案供应商SonicWall公司为何选择MySQL而没有选择Microsoft SQL Server,以及他们如何成功地提供基于MySQL的解决方案。 甲骨文公司工程设计副总裁Tomas Ulin表示:“通过选择MySQL on Windows,客户能极大地降低成本和提高对跨平台的支持。
甲骨文已经推出了MySQL 5。5 和 MySQL 企业版的主要增强功能,这些功能将为客户带来巨大的益处。
对于正在创建和部署关键网络业务和嵌入式应用软件的独立软件开发商和企业用户来说,MySQL是替代Microsoft SQL Server的一个极具吸引力的选择。” SonicWall产品管理总监Jan Sijp说:“把MySQL嵌入到我们的安全产品中已被证明是明智选择,通过与我们的自身专业相结合,MySQL能够帮助我们为客户提供高度可靠的关键解决方案,客户将能从集成、方便使用的解决方案中受益,而不必安装一个单独的数据库。
除了为客户减少复杂度之外,我们也降低了内部开发、测试和支持的成本。”。
3. MYsql和sql到底是不是一个东西
MYsql和sql不同,为了表达的更科学更准确,我介绍你看比较权威的文章,大家一起学习,声明,下面不是我的作品,请注意尊重版权。
文章来源:数据库联盟网 发布时间:2005-03-25 07:30:55 对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL and SQL Server。 这两者最基本的相似之处在于数据存储和属于查询系统。
你可以使用SQL来访问这两种数据库的数据,因为它们都支持ANSI-SQL。还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。
同时,二者也都提供支持XML的各种格式。 除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。
根本的区别是它们遵循的基本原则 二者所遵循的基本原则是它们的主要区别:开放vs保守。 SQL服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。
虽然你可以使用SQL服务器的Sybase引擎,但MySQL能够提供更多种的选择,如MyISAM, Heap, InnoDB, and Berkeley DB。 MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库。
同时,MySQL也缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能。 发行费用:MySQL不全是免费,但很便宜 当提及发行的费用,这两个产品采用两种绝然不同的决策。
对于SQL服务器,获取一个免费的开发费用最常的方式是购买微软的Office或者Visual Studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买SQL Server Standard Edition。
学校或非赢利的企业可以不考虑这一附加的费用。 性能:先进的MySQL 纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。
MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。
你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。
Yahoo!商业网站就使用MySQL作为后台数据库。 当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。
但是,这些特性也要付出代价的。 比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。
如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果。 安全功能 MySQL有一个用于改变数据的二进制日志。
因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。 即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。
在SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。 安全性 这两个产品都有自己完整的安全机制。
只要你遵循这些安全机制,一般程序都不会出现什么问题。 这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入。
当然,你也可以自己设置这些IP端口。 恢复性:先进的SQL服务器 恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中。
这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。 然而,对于SQL服务器而言就表现得很稳键。
SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。 根据需要决定你的选择 对于这两种数据库,如果非要让我说出到底哪一种更加出色,也许我会让你失望。
以我的观点,任一对你的工作有帮助的数据库都是很好的数据库,没有哪一个数据库是绝对的出色,也没有哪一个数据库是绝对的差劲。 我想要告诉你的是你应该多从你自己的需要出发,即你要完成什么样的任务?而不要单纯地从软件的功能出发。
如果你想建立一个。服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用SQL服务器。
如果你想建立一个第三方站点,这一站点可以从一些客户端读取数据,那么MySQL将是最好的选择。 这两者数据库都能够在。
或J2EE下运行正常,同样,都能够利用RAID。 。
4. mysql中事务和存储过程的区别
存储过程是:
通过一系列的SQL语句, 根据传入的参数(也可以没有), 通过简单的调用,
完成比单个SQL语句更复杂的功能, 存储在数据库服务器端,只需要编译过一次之后再次使用都不需要再进行编译。主要对存储的过程进行控制。
事务是一系列的数据更改操作组成的一个整体。一旦事务中包含的某操作失败或用户中止,用户可以控制将事务体中所有操作撤消,返回事务开始前的状态。
事务中的操作是一个整体,要么整体完成,要么全部不做。从而保证了数据的完整性。
Mysql中,MyISAM存储引擎不支持事务,InnoDB支持。
两者都是数据库中非常重要的知识。
5. 有关数据库最基本最基础知识
一 事务处理介绍 事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。
事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完 成的事务。
二 事务与一致性 事务是完整性的单位,一个事务的执行是把数据库从一个一 致的状态转换成另一个一致的状态。因此,如果事务孤立执行时 是正确的,但如果多个事务并发交错地执行,就可能相互干扰, 造成数据库状态的不一致。
在多用户环境中,数据库必须避免同 时进行的查询和更新发生冲突。这一点是很重要的,如果正在被 处理的数据能够在该处理正在运行时被另一用户的修改所改变, 那么该处理结果是不明确的。
不加控制的并发存取会产生以下几种错误: 1 丢失修改(lost updates) 当多个事务并发修改一个数据时,不加控制会得出错误的结 果,一个修改会覆盖掉另一个修改。 2 读的不可重复性 当多个事务按某种时间顺序存取若干数据时,如果对并发存 取不加控制,也会产生错误。
3 脏读(DIRDY DATA),读的不一致性 4 光标带来的当前值的混乱 事务在执行过程中它在某个表上的当前查找位置是由光标表 示的。光标指向当前正处理的记录。
当处理完该条记录后,则指 向下一条记录。在多个事务并发执行时,某一事务的修改可能产 生负作用,使与这些光标有关的事务出错。
5 未释放修改造成连锁退出 一个事务在进行修改操作的过程中可能会发生故障,这时需 要将已做的修改回退(Rollback)。如果在已进行过或已发现错 误尚未复原之前允许其它事务读已做过修改(脏读),则会导致 连锁退出。
6 一事务在对一表更新时,另外的事务却修改或删除此表的 定义。 数据库会为每个事务自动地设置适当级别的锁定。
对于前面 讲述的问题:脏读、未释放修改造成的连锁退出、一事务在对一 表更新时另外的事务却修改或删除此表的定义,数据库都会自动 解决。而另外的三个问题则需要在编程过程中人为地定义事务或 加锁来解决。
三 事务和恢复 数据库本身肩负着管理事务的责任。事务是最小的逻辑工作 单元,在这个工作单元中,对数据库的所有更新工作,要么必须 全部成功,要么必须全部失败(回退)。
只要应用程序指定了某 段程序为一个事务并做了相应的处理(提交或回退),数据库系 统会自动维护事务本身的特性。 四 ORACLE数据库的事务定义 ORACLE事务从MIT、ROLLBACK、连接到数据库或开始第一 条可执行的SQL语句时开始,到一条MIT、ROLLBACK语句或退出 数据库时结束。
如果在一个事务中包含DDL语句,则在DDL语句的 前后都会隐含地执行MIT语句,从而开始或结束一个事务。 如果一个事务由于某些故障或者由于用户改变主意而必须在 提交前取消它,则数据库被恢复到这些语句和过程执行之前的状 态。
利用ROLLBACK语句可以在MIT命令前随时撤消或回退一个 事务。可以回退整个事务,也可以会退部分事务,但是不能回退 一个已经被提交的事务。
回退部分事务的ROLLBACK命令为: ROLLBACK to savepoint 存储点名 存储点是用户放入事务中的标记,用来表示一个可被回退的 位置。存储点通过在事务中放入一个SAVEPOINT命令而 *** 入。
该 命令的语法是: SAVEPOINT 存储点名 如果在ROLLBACK语句中没有给出存储点名,则整个事务被回 退。 五 SYBASE数据库的事务定义 SYBASE通过使用BEGIN TRANsaction和MIT TRANsaction命令指 示SQL将任意数目的语句作为一个单元来处理。
ROLLBACK TRANsaction 命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE TRANsaction命令定义的存储点上。 BEGIN TRANsaction和MIT TRANsaction能够包含任意数目的SQL 语句和存储过程,方法很简单: BEGIN TRANsaction [事务名称] MIT TRANsaction 如果一个事务由于某些故障或者由于用户改变主意而必须在提交 前取消它,则数据库被恢复到这些语句和过程执行之前的状态。
利用ROLLBACK TRANsaction命令可以在MIT TRANsaction命令 前随时回退一个事务。可以回退整个事务,也可以回退部分事务,但 是不能回退一个已经被提交的事务。
ROLLBACK TRANsaction命令为: ROLLBACK TRANsaction [事务名|存储点名] 存储点名是用户放入事务中的标记,用来表示一个可以被回退的 位置。存储点名通过在事务中放入一个SAVE TRANsaction命令而 *** 入。
该命令的句法是: SAVE TRANsaction 存储点名 如果在ROLLBACK TRANsaction中没有给出存储点名或事务名,则 事务被回退到批处理中的第一个BEGIN TRANsaction语句处。
如何在mysql 的存储过程中使用事务
6.7 MySQL 事务与锁定命令
6.7.1 BEGIN/COMMIT/ROLLBACK 句法
缺省的,MySQL 运行在 autocommit 模式。这就意味着,当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。
如果你使用事务安全表 (例如 InnoDB、BDB),通过下面的命令,你可以设置 MySQL 为非 autocommit 模式:
SET AUTOCOMMIT=0
在此之后,你必须使用 COMMIT 来存储你的更改到磁盘上,或者使用 ROLLBACK ,如果你希望忽略从你的事务开始所做的更改。
如果你希望为一系列语句从 AUTOCOMMIT 模式转换,你可以使用 START TRANSACTION 或 BEGIN 或 BEGIN WORK 语句:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
START TRANSACTION 在 MySQL 4.0.11 中被加入;这是被推荐的开始一个特别(ad-hoc)事务的方式,因为这是 ANSI SQL 句法。
注意,如果你使用的是一个非事务安全表,更改会立刻被存储,不受 autocommit 模式状态的约束。
当你更新了一个非事务表后,如果你执行一个 ROLLBACK,你将得到一个错误 (ER_WARNING_NOT_COMPLETE_ROLLBACK) 作为一个警告。所有事务安全表将被恢复,但是非事务安全表将不会改变。
如果你使用 START TRANSACTION 或 SET AUTOCOMMIT=0,你应该使用 MySQL
二进制日志做备份以代替老的更新日志。事务处理被以一个大块形式存储在二进制日志中,在 COMMIT
上面,为了保护回滚的事务,而不是被存储的。查看章节 4.9.4 二进制日志。 如果您使用起动事务处理或集AUTOCOMMIT=0
,您应该使用MySQL 二进制日志为备份代替更旧的更新日志。 事务处理存储在二进制登录一大块,做,保证, 滚的事务处理不存储。 参见部分4
。9.4 二进制日志。
下列命令自动的结束一个事务 (就好像你在执行这个命令之前,做了一个 COMMIT):
命令 命令 命令
ALTER TABLE BEGIN CREATE INDEX
DROP DATABASE DROP TABLE RENAME TABLE
TRUNCATE
你可以使用 SET TRANSACTION ISOLATION LEVEL ... 改变事务的隔离级。查看章节 6.7.3 SET TRANSACTION 句法。
6.7.2 LOCK TABLES/UNLOCK TABLES 句法
LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}
[, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} ...]
...
UNLOCK TABLES
LOCK TABLES 为当前线程锁定表。UNLOCK TABLES 释放当前线程拥有的所有锁定。当线程发出另一个 LOCK TABLES,或当与服务器的连接被关闭时,被当前线程锁定的所有表将被自动地解锁。
为了在 MySQL 4.0.2 使用 LOCK TABLES ,你必须拥有一个全局的 LOCK TABLES 权限和一个在相关表上的
SELECT 权限。在 MySQL 3.23 中,你对该表需要有 SELECT、insert、DELETE 和 UPDATE 权限。
使用 LOCK TABLES 的主要原因是,仿效事务处理或在更新表时得到更快的速度。此后会有更详细的描述。
如果一个线程在一个表上得到一个 READ 锁,该线程 (和所有其它线程) 只能从表中读取。如果一个线程在一个表上得到一个 WRITE 锁,那么只有拥有这个锁的线程可以从表中读取和写表。其它的线程被阻塞。
READ LOCAL 和 READ 之间的不同就在于,当锁被加载时,READ LOCAL 允许非冲突(non-conflicting) INSERT 语句执行。如果当你加载着锁时从 MySQL 外部操作数据库文件,这将仍不能被使用。
当你使用 LOCK TABLES 是地,你必须锁定所有你将使用的表,并且必须使用与你的查询中将使用的别名相同!如果你在一个查询中多次使用一个表(用别名),你必须为每一个别名获得一个锁。
WRITE 锁通过比 READ 锁有更高的权限,以确保更新被尽快地处理。这就意味着,如果一个线程获得一个 READ
锁,而同时另外一个线程请求一个 WRITE 锁,并发的 READ 锁请求将等待直到 WRITE 线程得到了锁并释放了它。你可以使用
LOW_PRIORITY WRITE 锁,当该线程在等待 WRITE 锁时,它将允许其它的线程获得 READ 锁。 你应该只使用
LOW_PRIORITY WRITE 锁,如果你确信这将是最后一次,当没有线程将拥有 READ 锁。
LOCK TABLES 工作如下:
以内部定义的次序排序所有被锁定的表 (从用户立场说,该次序是不明确的)。
如果一个表被以一个读锁和一个写锁锁定,将写锁放在读锁之前。
一次只锁定一个表,只到线程得到所有的锁定。
这个方案是为了确保,表锁定死锁释放。 对于这个模式你仍然有些其它事情需要知道:
如果你对一个表使用一个 LOW_PRIORITY WRITE 锁定,这就意味着,MySQL 将等待这个锁,直到没有线程请求一个 READ
锁。当线程得到了 WRITE 锁,并等待获得锁定表列表中的下一个表的锁定时,其它所有的线程将等待 WRITE
锁被释放。如果这在你的应用程序中会引起一个严重的问题,你应该考虑将你的某些表转换为事务安全表。
你可以使用 KILL 安全地杀死一个正在表锁定的线程。查看章节 4.5.5 KILL 句法。
注意,你不应该 锁定你正在对其使用 INSERT DELAYED 的表。这是因为,在这种情况下,INSERT 是通过单独的线程完成的。
通常,你不需要锁定任何表,因为所有单 UPDATE 语句都是原子的;其它的线程无法干扰当前执行的 SQL 语句。当你无论如何希望锁定表时,这里有一些情况:
如果你在一束表上运行许多操作,锁定你将要使用的表,这会更快一些。当然有不利的方面,其它线程将不能更新一个 READ
锁的表,并且没有其它线程要以读取一个 WRITE 锁的表。 在 LOCK TABLES 下,某些事运行得更快一些的原因是,MySQL
将不会转储清除被锁定表键高速缓冲,直到 UNLOCK TABLES 被调用 (通常键高速缓冲在每个 SQL 语句后都会被转储清除)。这将加速在
MyISAM 表上的插入、更新、删除。
如果你在 MySQL 中正在使用一个不支持事务的存储引擎,如果你希望能确保没有其它的线程会出现在一个 SELECT 和 一个 UPDATE 之间,你必须使用 LOCK TABLES 。下面的示例显示为了安全地执行,这里需要LOCK TABLES :
mysql LOCK TABLES trans READ, customer WRITE;
mysql SELECT SUM(value) FROM trans WHERE customer_id=some_id;
mysql UPDATE customer SET total_value=sum_from_previous_statement
- WHERE customer_id=some_id;
mysql UNLOCK TABLES;
不使用 LOCK TABLES,将可能发生在 SELECT 和 UPDATE 语句执行期间有另外一个线程可能在 trans 表中插入一行新记录。
通过使用递增更新 (UPDATE customer SET value=value+new_value) 或 LAST_INSERT_ID() 函数,你可以在很多情况下避免使用 LOCK TABLES。
你也可以使用用户级锁定函数 GET_LOCK() 和 RELEASE_LOCK() 解决一些情况,这些锁被保存在服务器上的一个哈希表中,并以
pthread_mutex_lock() 和 pthread_mutex_unlock() 实现以获得高速度。查看章节 6.3.6.2
辅助功能函数。
查看章节 5.3.1 MySQL 如何锁定表,以获取关于锁定方案的更多信息。
你可以使用 FLUSH TABLES WITH READ LOCK 命令以读锁锁定所有数据库中的所有表。查看章节 4.5.3 FLUSH 句法。如果你有一个可以及时建立文件快照的文件系统,例如 Veritas,这将是得到备份的非常方便方式。
注意:LOCK TABLES 不是事务安全的,在尝试锁定一个表之前,将自动地提交所有的活动事务。
6.7.3 SET TRANSACTION 句法
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL
{ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
设置全局的、整个会话或下一个事务的事务隔离级。
缺省行为是设置下一个(未启动的)事务的隔离级。如果你使用 GLOBAL
关键词,语句为所有在那个点上建立的新连接设置默认的全局事务隔离级。为了这样做,你需要有 SUPER 权限。使用 SESSION
关键词为当前连接所有将来执行的事务设置默认的事务隔离级。
你可以使用 --transaction-isolation=... 为 mysqld 设置默认的全局隔离级。查看章节 4.1.1 mysqld 命令行选项
MYSQL5.5中如何使用事务?
首先一点, 如果你是 mysql 5.5 肯定支持事务
其次, 是否可以用事务, 取决于你使用的表的存储引擎.
默认 myIsam 是不支持事务的
你要把表转换成 Innodb 存储引擎才可以使用事务
你怎么知道你的不支持呢,
你来做个试验好了。
打开是事务请键入:
set @@AUTOCOMMIT=0;
BEGIN WORK;
然后你去把你MySQL的某一张表中的数据删除
然后再打:ROLLBACK WORK;
你就惊讶的发现,你刚才删的数据还原了
回滚事物:SAVEPOINT id
id是保存点的名称
结束事物:COMMIT
具体还是要一本书才行。网络上的其实说实话太杂了
最后补充一下, 修改存储引擎的 MYSQL 语句:
alter table 表名 type = InnoDB;
怎么让mysql支持事务的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql如何支持事物、怎么让mysql支持事务的信息别忘了在本站进行查找喔。