2012-02-28 192 views
0

我需要在一個項目中使用的交易和它的接縫,他們只是想不工作Mysql的交易: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;*/ 

但是它不會使回退並將插入保留在表格中。 我是否需要對數據庫屬性進行一些更改,或者您爲什麼認爲它不起作用? 謝謝,阿德里安

+0

什麼是產品表的存儲引擎?交易目前僅支持InnoDB。 – Mchl 2012-02-28 06:56:47

+0

是MyIsam,只有innoDb啊......好的,謝謝我現在要修改 – 2012-02-28 07:00:22

回答

2

在隨MySQL發貨的存儲引擎中,InnoDB表當前支持事務。將表格的存儲從MyISAM更改爲InnoDB

1

嘿。你應該禁用自動提交。

SET autocommit=0; 
+0

'BEGIN;'禁用自動提交(無論如何默認設置爲1) – Mchl 2012-02-28 07:26:46

1

您在第一行啓用了自動提交功能。只要數據庫表以任何方式更新,它都會立即完成事務。將其設置爲SET autocommit = 0; 和你的交易應該沒問題!