Se você obter o erro/aviso: Warning: Some
non-transactional changed tables couldn't be rolled
back
ao tentar fazer um ROLLBACK
,
isto significa que algumas das tabelas que você utiliza na
transação não suportam transações. Estas tabelas não
transacionaisn não serão afetadas pela instrução
ROLLBACK
.
O caso mais comum em que isto acontece é quando você tenta
criar uma tabela de um tipo que não é suportado por seu
binário mysqld
. Se o
mysqld
não suporta um tipo de tabela (ou se
o tipo de tabela está disabilitado por uma opção de
inicialização), ele criará a tabela com o tipo mais comumente
usado em suas outras tabelas, que é provavelmente o
MyISAM
.
Você pode verificar o tipo de uma tabela fazendo:
SHOW TABLE STATUS LIKE 'nome_tabela'
. See
Secção 4.6.8.2, “SHOW TABLE STATUS
”.
Você pode verificar as extensão que seu binário
mysqld
suporta com:
show variables like 'have_%'
. See
Secção 4.6.8.4, “SHOW VARIABLES
”.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.