Dat komt waarschijnlijk omdat je trigger niet eens bestaat. Het probleem is hier
create
trigger 'copy_eform_data'
Met de enkele aanhalingstekens copy_eform_data
is een string.
Bekijk dit bericht eens: Wanneer enkele aanhalingstekens, dubbele aanhalingstekens en backticks gebruiken?
Lees ook meer over de NEW
en OLD
trefwoorden in triggers. Je trigger komt waarschijnlijk nooit overeen met een regel.
En hier
where ack_no=select max(s.ack_no) from asdb.sda_user_eform_data s
je mist paranthesen.
Afgezien daarvan heb ik niet echt diep nagedacht over je logica om eerlijk te zijn, omdat ik geen punt zie in je hele vraag. Waarom zou je dubbele gegevens willen hebben? Uit prestatieredenen denk ik? Laat uw tabel op de juiste manier indexeren en er zou geen probleem moeten zijn. En om de 5 laatste vermeldingen van uw tafel te krijgen, gebruikt u gewoon
FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC
LIMIT 5
U kunt kolommen hebben zoals
created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
om te gebruiken in uw ORDER BY
. En u wilt waarschijnlijk een index op die kolom.