Je to nejspíš proto, že váš spouštěč ani neexistuje. Problém je zde
create
trigger 'copy_eform_data'
S jednoduchými uvozovkami copy_eform_data
je řetězec.
Podívejte se na tento příspěvek: Kdy použít jednoduché uvozovky, dvojité uvozovky a zpětné zaškrtnutí?
Také byste si měli přečíst o NEW
a OLD
klíčová slova ve spouštěčích. Váš spouštěč pravděpodobně nikdy neodpovídá řádku.
A tady
where ack_no=select max(s.ack_no) from asdb.sda_user_eform_data s
chybí ti závorky.
Kromě toho všeho jsem se upřímně nezamyslel nad vaší logikou, protože v celé vaší otázce nevidím smysl. Proč byste chtěli mít duplicitní data? Asi z výkonnostních důvodů? Nechte si tabulku náležitě indexovat a neměl by nastat žádný problém. A abyste získali 5 nejnovějších položek vašeho stolu, jednoduše použijte
FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC
LIMIT 5
Můžete mít sloupce jako
created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
k použití ve vašem ORDER BY
. A pravděpodobně budete chtít index v tomto sloupci.