Das liegt höchstwahrscheinlich daran, dass Ihr Trigger gar nicht existiert. Das Problem liegt hier
create
trigger 'copy_eform_data'
Mit den einfachen Anführungszeichen copy_eform_data
ist eine Zeichenfolge.
Schauen Sie sich diesen Beitrag an: Wann werden einfache Anführungszeichen, doppelte Anführungszeichen und Backticks verwendet?
Außerdem sollten Sie sich über NEW
informieren und OLD
Schlüsselwörter in Triggern. Ihr Trigger passt wahrscheinlich nie zu einer Zeile.
Und hier
where ack_no=select max(s.ack_no) from asdb.sda_user_eform_data s
Ihnen fehlen Klammern.
Abgesehen davon habe ich ehrlich gesagt nicht wirklich über Ihre Logik nachgedacht, weil ich in Ihrer ganzen Frage keinen Sinn sehe. Warum sollten Sie doppelte Daten haben? Ich vermute aus Performance-Gründen? Lassen Sie Ihre Tabelle entsprechend indizieren und es sollte kein Problem geben. Und um die 5 neuesten Einträge Ihrer Tabelle zu erhalten, verwenden Sie einfach
FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC
LIMIT 5
Sie können Spalten wie
habencreated timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
zur Verwendung in Ihrem ORDER BY
. Und Sie möchten wahrscheinlich einen Index für diese Spalte.