Jawaban untuk pertanyaan Anda tergantung pada apakah Anda dalam suatu transaksi yang akan mencakup lebih dari satu pernyataan. (Anda telah menandai pertanyaan dengan InnoDB, jawabannya akan berbeda dengan MyISAM.)
Dari manual referensi: http://dev.mysql.com/doc/refman/5.1/en/commit.html
Secara default, MySQL berjalan dengan mode autocommit diaktifkan. Ini berarti bahwa segera setelah Anda menjalankan pernyataan yang memperbarui (memodifikasi) sebuah tabel, MySQL menyimpan pembaruan pada disk untuk membuatnya permanen.
Jadi ya, secara default, jika Anda hanya menggunakan INSERT, catatan yang Anda masukkan akan dikomit, dan tidak ada gunanya mencoba mengembalikannya. (Ini secara efektif sama dengan membungkus setiap pernyataan antara BEGINdan COMMIT.)
Namun, jika Anda berurusan dengan transaksi secara eksplisit, Anda harus menggunakannya COMMITuntuk menyimpan catatan, tetapi Anda juga dapat menggunakannya ROLLBACK.
Anda dapat memulai transaksi secara eksplisit dengan menggunakan START TRANSACTION(atau BEGIN). Ini tidak tergantung pada autocommitpengaturan (diaktifkan secara default):
Dengan START TRANSACTION, autocommit tetap dinonaktifkan hingga Anda mengakhiri transaksi dengan COMMIT atau ROLLBACK. Mode autocommit kemudian kembali ke keadaan sebelumnya.
Atau, jika autocommit=0, saya pikir pernyataan apa pun yang mengikuti akhir transaksi, akan memulai transaksi (tetapi Anda masih dapat menggunakan START TRANSACTIONsecara eksplisit); setidaknya itulah cara saya menafsirkan ini :
Mode autocommit. Jika diatur ke 1, semua perubahan pada tabel segera berlaku. Jika diatur ke 0, Anda harus menggunakan COMMIT untuk menerima transaksi atau ROLLBACK untuk membatalkannya. Jika autocommit bernilai 0 dan Anda mengubahnya menjadi 1, MySQL melakukan COMMIT otomatis dari setiap transaksi terbuka. Cara lain untuk memulai transaksi adalah dengan menggunakan START TRANSACTION atau BEGIN statement. Lihat Bagian 12.3.1, “MULAI Sintaksis TRANSAKSI, KOMIT, dan ROLLBACK”.
Lebih khusus "cara lain untuk memulai transaksi" tampaknya menyiratkan bahwa pengaturan "autocommit = 0" sudah cukup untuk memulai transaksi (setidaknya tepat sebelum setiap pernyataan pada awal sesi atau yang mengikuti a COMMIT/ ROLLBACK). Saya akan menyarankan untuk menggunakan BEGINatau START TRANSACTIONtetap secara eksplisit meskipun autocommit=0, karena dapat membuatnya lebih jelas untuk melihat kapan transaksi dimulai atau berakhir.
(Bagaimana Anda memulai transaksi mungkin tergantung pada cara aplikasi Anda menggunakan MySQL.)