Các câu lệnh DDL gây ra một cam kết ngầm và bạn không thể làm gì với nó. Không có cách nào để ngăn chặn hành vi này.
Những câu lệnh DDL nào có hành vi này thay đổi theo thời gian, vì vậy bạn cần kiểm tra phiên bản của mình.
5.1 http://dev.mysql.com/doc/refman/5.1/en/implicit-commit.html
5.5 http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html
5.6 http://dev.mysql.com/doc/refman/5.6/en/implicit-commit.html
Khi chúng ta chỉ mở rộng lược đồ, các bảng / cột / view / procs / etc mới, sẽ không ảnh hưởng đến mã hiện có thì tự động hóa là OK, chỉ cần kiểm tra lỗi và sửa chúng.
Khi chúng sẽ ảnh hưởng đến mã hiện có thì bạn cần phải đưa ra chiến lược cho từng trường hợp cụ thể. Vì không có khả năng hoàn trả, bạn cần có kế hoạch dự phòng của riêng mình và bạn cần phải kiểm tra kỹ lưỡng.
Vì tùy từng trường hợp nên không có nhiều thứ mà tôi có thể đưa ra để giúp đỡ cho trường hợp cụ thể của bạn.