Проверка работы транзакций в innodb
Дмитрий 24.03.2011 13:04
Добрый день. У меня два вопроса
Первый - никак не могу до конца разобраться с классом Sql.p и транзакциями. Я правильно понимаю, что если нас транзакции не волнуют (например в таблицах myisam), то можно делать sql запросы по мере надобности в виде
^oSql.void{INSERT ...}
$table[^oSql.table{SELECT ...}]
^oSql.void{UPDATE ...}
В данном случае это будет 3 отдельных транзакции? Если же мы используем innodb и хотим какую-то общую транзакцию, то придётся обернуть код в ^oSql.server{}?
В статье "О переносимости sql запросов" написано "Необходимо помнить, что в этом случае каждый запрос будет выполнен как отдельная транзакция и если вам этого не нужно - то писать вокруг группы запросов, которые должны быть выполнены как одна транзакция вам придется."
Это как раз об этом, но непонятно, что нужно писать - connect вокруг группы запросов или ^oSql.server{}. И нужно ли добавлять ^oSql.void{START TRANSACTION / COMMIT}?
Второй вопрос - есть ли какой-то простой способ проверить, что транзакция в innodb работает? Дело в том, что у меня работают все способы - и с обёрткой в ^oSql.server{} всей страницы, и без неё, и с множеством обёрток ^oSql.server{несколько запросов}, и с обёртками вида
^oSql.server{
^oSql.void{START TRANSACTION}
^oSql.void{INSERT ...}
^oSql.void{UPDATE ...}
^oSql.void{COMMIT}
}
а вот способ тестирования в голову не приходит.
Заранее спасибо
- Проверка работы транзакций в innodb, Дмитрий 24.03.2011 13:04