To najprawdopodobniej dlatego, że twój wyzwalacz nawet nie istnieje. Problem jest tutaj
create
trigger 'copy_eform_data'
Za pomocą pojedynczych cudzysłowów copy_eform_data
jest ciągiem.
Zajrzyj do tego posta: Kiedy używać pojedynczych cudzysłowów, podwójnych cudzysłowów i znaków wstecznych?
Powinieneś także przeczytać o NEW
i OLD
słowa kluczowe w wyzwalaczach. Twój wyzwalacz prawdopodobnie nigdy nie pasuje do linii.
I tutaj
where ack_no=select max(s.ack_no) from asdb.sda_user_eform_data s
brakuje ci nawiasów.
Poza tym, szczerze mówiąc, nie zastanawiałem się zbyt głęboko nad twoją logiką, ponieważ nie widzę sensu w całym twoim pytaniu. Dlaczego chcesz mieć zduplikowane dane? Chyba z powodów wydajnościowych? Zaindeksuj odpowiednio tabelę i nie powinno być problemu. Aby uzyskać 5 najnowszych wpisów z Twojej tabeli, po prostu użyj
FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC
LIMIT 5
Możesz mieć kolumny takie jak
created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
do wykorzystania w ORDER BY
. I prawdopodobnie potrzebujesz indeksu w tej kolumnie.