mysql事物,为什么rollback不起作用
创建表createtablestaff(idintprimarykeyauto_increment,namevarchar(20))type=innodb;插入数据ins...
创建表create table staff
(
id int primary key auto_increment,
name varchar(20)
)
type = innodb;
插入数据
insert into staff(name)values('zhang san');
事物:
begin;
delete from staff;
rollback;
最后查看数据库中的记录,居然没有“zhangsan”这条记录,这是怎么回事,请高手指教一下
这是我在CMD下运行的:
mysql> use example1
Database changed
mysql> select *from staff;
Empty set (0.03 sec)
mysql> insert into staff(name)values('11');
Query OK, 1 row affected (0.00 sec)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from staff;
Query OK, 1 row affected (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select *from staff;
Empty set (0.00 sec)
为什么还是把记录给删除了?
求高手解决一下,估计是MYSQL哪个地方设置问题,并不是我语法有问题,跪求求高手解决 展开
(
id int primary key auto_increment,
name varchar(20)
)
type = innodb;
插入数据
insert into staff(name)values('zhang san');
事物:
begin;
delete from staff;
rollback;
最后查看数据库中的记录,居然没有“zhangsan”这条记录,这是怎么回事,请高手指教一下
这是我在CMD下运行的:
mysql> use example1
Database changed
mysql> select *from staff;
Empty set (0.03 sec)
mysql> insert into staff(name)values('11');
Query OK, 1 row affected (0.00 sec)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from staff;
Query OK, 1 row affected (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select *from staff;
Empty set (0.00 sec)
为什么还是把记录给删除了?
求高手解决一下,估计是MYSQL哪个地方设置问题,并不是我语法有问题,跪求求高手解决 展开
4个回答
展开全部
create table staff
(
id int primary key auto_increment,
name varchar(20)
)
type = innodb;
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from staff;
Query OK, 1 row affected (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from staff;
+----+-----------+
| id | name |
+----+-----------+
| 2 | zhang san |
+----+-----------+
1 row in set (0.00 sec)
我的测试结果 是回滚了
你把begin 换成 start transaction 试试
(
id int primary key auto_increment,
name varchar(20)
)
type = innodb;
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from staff;
Query OK, 1 row affected (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from staff;
+----+-----------+
| id | name |
+----+-----------+
| 2 | zhang san |
+----+-----------+
1 row in set (0.00 sec)
我的测试结果 是回滚了
你把begin 换成 start transaction 试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete from
默认提交了,你可以设置mysql的DDL语句不自动提交
默认提交了,你可以设置mysql的DDL语句不自动提交
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在begin;语句后加start transaction;
就可以了。
就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下载一个Mysql试图开发工具 例如sqlyog
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |