|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.