sql >> Database teknologi >  >> RDS >> Mysql

MySQL trigger for at slette gammel post og indsætte en ny

Det er højst sandsynligt, fordi din trigger ikke engang eksisterer. Problemet er her

create
  trigger 'copy_eform_data'

Med de enkelte anførselstegn copy_eform_data er en streng.

Tag et kig på dette indlæg: Hvornår skal man bruge enkelte anførselstegn, dobbelte anførselstegn og bagtil?

Du bør også læse op om NEW og OLD søgeord i triggere. Din trigger matcher sandsynligvis aldrig en linje.

Og her

where ack_no=select max(s.ack_no) from asdb.sda_user_eform_data s

du mangler parenteser.

Bortset fra alt det har jeg ikke rigtig haft en dyb tanke om din logik for at være ærlig, for jeg kan ikke se en mening med hele dit spørgsmål. Hvorfor vil du have duplikerede data? Jeg gætter på præstationsmæssige årsager? Få din tabel indekseret korrekt, og der skulle ikke være noget problem. Og for at få de 5 seneste poster i dit bord skal du blot bruge

FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC 
LIMIT 5

Du kan have kolonner som

created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

at bruge i din ORDER BY . Og du vil sikkert have et indeks på den kolonne.



  1. java.sql.Forbindelsesudvidelse til SSH

  2. Hvad sker der med dubletter, når der indsættes flere rækker?

  3. Håndter ORACLE-undtagelser

  4. Hvordan får man medarbejderne med deres ledere