发布网友 发布时间:2022-04-24 13:46
共1个回答
热心网友 时间:2022-04-07 16:40
首先一点, 如果你是 mysql 5.5 肯定支持事务
其次, 是否可以用事务, 取决于你使用的表的存储引擎.
默认 myIsam 是不支持事务的
你要把表转换成 Innodb 存储引擎才可以使用事务
你怎么知道你的不支持呢,
你来做个试验好了。
打开是事务请键入:
set @@AUTOCOMMIT=0;
BEGIN WORK;
然后你去把你MySQL的某一张表中的数据删除
然后再打:ROLLBACK WORK;
你就惊讶的发现,你刚才删的数据还原了
回滚事物:SAVEPOINT id
id是保存点的名称
结束事物:COMMIT
具体还是要一本书才行。网络上的其实说实话太杂了
最后补充一下, 修改存储引擎的 MYSQL 语句:
alter table 表名 type = InnoDB;追问关键是只要一输入type = InnoDB; 就错啊。你看以下的,
mysql> alter table zhang type = innoDB;
ERROR 10 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'type
= innoDB' at line 1
我的数据库一定是5.5的,朋友,你知道这是怎么回事吗?
追答你的mysql如果是windows,默认的表就是innoDB的
不好意思,那个SQL我写错:alter table 表名 engine= InnoDB;
然后事物一般来说只要开了就可以用了。
set @@AUTOCOMMIT=0;
BEGIN WORK;
这样是开启。
开启了,然后你先:select * from zhang;//查询你的表
有记录,然后你用 delete from zhang;//清空你的表
再select * from zhang ;//确定清空
使用ROLLBACK WORK;
然后在
再select * from zhang ;
zhang表的记录被还原了
说明事务已经打开
刚才的回答不是太好,不好意思
SAVEPOINT [ID];//保存当前状态
ROLLBACK SAVEPOINT [ID];//还原到指定的点
[ID]可以随便名字