Mysql транзакции без эффекта - PullRequest
0 голосов
/ 28 февраля 2012

Мне нужно использовать транзакции в проекте, и кажется, что они просто не хотят работать: 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 ]

2 голосов
/ 28 февраля 2012

Среди механизмов хранения, поставляемых с MySQL, только таблицы InnoDB в настоящее время поддерживают транзакции. Измените хранилище таблицы с MyISAM на InnoDB

1 голос
/ 28 февраля 2012

В первой строке включена функция автоматической фиксации.Он завершает транзакцию, как только таблица базы данных обновляется любым способом.Установите его в SET autocommit = 0;и ваши транзакции должны быть в порядке!

1 голос
/ 28 февраля 2012

Хех.Вы должны отключить автокоммит.

SET autocommit=0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...