"Apakah ada cara untuk menghindari kesalahan tabel mutasi tanpa menggunakan tabel sementara untuk nilai atau transaksi otonom?"
tl;dr tidak.
Kesalahan tabel bermutasi disebabkan oleh kueri tabel yang memiliki pemicu, atau tabel yang terlibat dalam hubungan kunci asing dengan tabel pemilik (setidaknya dalam versi database yang lebih lama, tidak yakin apakah masih memperoleh).
Dalam aplikasi yang dirancang dengan benar, ini seharusnya tidak diperlukan. Inilah sebabnya mengapa banyak orang menganggap tabel bermutasi sebagai indikator pemodelan data yang buruk. Misalnya, mutasi sering dikaitkan dengan normalisasi yang tidak memadai.
Mengutip Jamie Zawinski:Beberapa orang, ketika dihadapkan dengan pengecualian tabel bermutasi, berpikir "Saya tahu, saya akan menggunakan transaksi otonom." Sekarang mereka memiliki dua masalah.
Terkadang kesalahan dapat dihindari hanya dengan memodifikasi nilai :NEW dalam pemicu BEFORE INSERT OR UPDATE atau dengan menggunakan kolom virtual. Tetapi Anda harus memposting lebih banyak detail untuk melihat apakah ini berlaku.
Tetapi solusi terbaik adalah tidak membutuhkan jenis lain.