Subject: | DBD::mysql doesn't follow DBI's documented begin_work / AutoCommit behaviour |
DBD::mysql does not follow the DBI specification for AutoCommit behaviour. According to the documentation for the "begin_work" method:
--snip--
$rc = $dbh->begin_work or die $dbh->errstr;
Enable transactions (by turning "AutoCommit" off) until the next
call to "commit" or "rollback". After the next "commit" or "roll-
back", "AutoCommit" will automatically be turned on again.
If "AutoCommit" is already off when "begin_work" is called then it
does nothing except return an error. If the driver does not support
transactions then when "begin_work" attempts to set "AutoCommit"
off the driver will trigger a fatal error.
--snip--
I have a database handle with AutoCommit turned on. However, even after issuing a "begin_work" statement, I get these warnings:
commit ineffective with AutoCommit enabled at migrate-database-schema line 96.
Commmit ineffective while AutoCommit is on at migrate-database-schema line 96.
It is also odd that I received two warnings for this same error.