Itu kemungkinan besar karena pemicu Anda bahkan tidak ada. Masalahnya ada di sini
create
trigger 'copy_eform_data'
Dengan tanda kutip tunggal copy_eform_data
adalah string.
Lihat posting ini: Kapan menggunakan tanda kutip tunggal, tanda kutip ganda, dan tanda kutip balik?
Anda juga harus membaca tentang NEW
dan OLD
kata kunci dalam pemicu. Pemicu Anda mungkin tidak pernah cocok dengan satu baris.
Dan di sini
where ack_no=select max(s.ack_no) from asdb.sda_user_eform_data s
Anda kehilangan tanda kurung.
Terlepas dari semua itu, sejujurnya saya tidak terlalu memikirkan logika Anda secara mendalam, karena saya tidak melihat titik dalam seluruh pertanyaan Anda. Mengapa Anda ingin memiliki data duplikat? Saya kira karena alasan kinerja? Minta tabel Anda diindeks dengan tepat dan seharusnya tidak ada masalah. Dan untuk mendapatkan 5 entri terbaru dari tabel Anda cukup gunakan
FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC
LIMIT 5
Anda dapat memiliki kolom seperti
created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
untuk digunakan dalam ORDER BY
. Dan Anda mungkin menginginkan indeks pada kolom itu.