Mysql事务没有效果

时间:2012-02-28 06:54:02

标签: mysql transactions

我需要在项目中使用交易,并且它只是想要不工作:D 在navicat编辑器中,我写了这句话:

SET autocommit=1;
BEGIN;

select * from product where deleted=0 and name='Juice Coke';

insert into product(name, fk_category, fk_packaging, fk_stock, active, decimals, price, has_special_price, special_price_description, added_date, deleted) 
values ('qaaaJuice Coke','2','4','1','1','2','100.244','1','DESC SPECIAL PRICE','2012-02-28 08:26:47', 0 );

select * from product where deleted=0 and name='Juice Pepsi';
ROLLBACK;
/*COMMIT;*/

但是它不会进行回滚,插入仍然在表格中。 我是否需要对数据库属性进行一些更改,或者为什么您认为它不起作用? 谢谢,阿德里安

3 个答案:

答案 0 :(得分:2)

在MySQL附带的存储引擎中,只有InnoDB表目前支持事务。将表的存储从MyISAM更改为InnoDB

答案 1 :(得分:1)

嘿。您应该禁用自动提交。

SET autocommit=0;

答案 2 :(得分:1)

您在第一行启用了自动提交功能。一旦数据库表以任何方式更新,它就会完成事务。将其设置为SET autocommit = 0;  你的交易应该没问题!