表的存储引擎为myisam,如何去掉以前的自动commit功能,让程序员手动写程序commit呢? 表的myisam变成innodb,如何去掉以前的自动commit功能,让程序员手动写程序commit呢?我找了配置文件my.cnf,没有看到类似的参数设置,大家知道的,告诉下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么不让程序员自己在执行之前用:start transaction/begin/set autocommit=0· init_connect服务器为每个连接的客户端执行的字符串。字符串由一个或多个SQL语句组成。要想指定多个语句,用分号间隔开。例如,每个客户端开始时默认启用autocommit模式。没有全局服务器变量可以规定autocommit默认情况下应禁用,但可以用init_connect来获得相同的效果:SET GLOBAL init_connect='SET AUTOCOMMIT=0';还可以在命令行或选项文件中设置该变量。要想使用选项文件设置变量,应包括下述行:[mysqld]init_connect='SET AUTOCOMMIT=0' 这个根本不可能,MYISAM存储引擎并不支持事务,也自然没有什么COMMIT和ROLLBACK。所做的修改立即生效。 不存在什么以前的自动commit功能。 AUTO-COMMIT是MYSQL服务器的SESSION设定,与以前不以前没什么关系。你可以在SESSION中设置autocommit 变量为0或者FALSE以中止自动提交。 drop table if exists dms.t1 ;create table dms.t1 (c1 int)engine=innodb;insert into dms.t1 select 1;select * from dms.t1;rollback;select * from dms.t1;我做这个测试的时候,为什么rollback后面 还可以查到dms.t1还有1条数据呢,我都rollback了啊! 查看你的autocommit是什么值select @@autocommit是1的话 表示已经提交了.所以rollback 无效;是0的话 表示还没有提交,可以rollback 这个AUTOCOMMIT是一个SESSION级的变量,自然无法在MY.CNF参数文件中设置。不过你可以通过如下方式实现相同功能[mysqld]init_connect='SET autocommit=0' init_connect这个设置对普通用户有效,对超级用户root无效。所以,还是有缺点的。有人甚至还为此报过bug, 详见:http://bugs.mysql.com/bug.php?id=5035对于普通用户来说,最实用的是:init_connect='SET AUTOCOMMIT=0;set names gbk' 关于mysql-cluster用于实际生产环境的问题 数据导入 MySql安装问题 IPAddress关Configuration鸟事 我该如何生成一个MYSQL数据库ac? libmysql.lib 和 mysqlclient.lib 谁能提供点MYSQL空间用用??? 帮忙写条查询语句 求解救 mysql不能新建第二个数据库 mysql大表拆分,求方法 c/c++中如何 取得执行存储过程的多结果集... WINDOWS 编译MYSQL
· init_connect服务器为每个连接的客户端执行的字符串。字符串由一个或多个SQL语句组成。要想指定多个语句,用分号间隔开。例如,每个客户端开始时默认启用autocommit模式。没有全局服务器变量可以规定autocommit默认情况下应禁用,但可以用init_connect来获得相同的效果:SET GLOBAL init_connect='SET AUTOCOMMIT=0';
还可以在命令行或选项文件中设置该变量。要想使用选项文件设置变量,应包括下述行:[mysqld]
init_connect='SET AUTOCOMMIT=0'
create table dms.t1 (c1 int)
engine=innodb;
insert into dms.t1 select 1;
select * from dms.t1;
rollback;
select * from dms.t1;我做这个测试的时候,为什么rollback后面 还可以查到dms.t1还有1条数据呢,我都rollback了啊!
select @@autocommit
是1的话 表示已经提交了.所以rollback 无效;
是0的话 表示还没有提交,可以rollback
[mysqld]
init_connect='SET autocommit=0'
详见:
http://bugs.mysql.com/bug.php?id=5035
对于普通用户来说,最实用的是:
init_connect='SET AUTOCOMMIT=0;set names gbk'