sql >> Databáze >  >> RDS >> Mysql

Spouštěč MySQL pro odstranění starého záznamu a vložení nového

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.



  1. Vzdálený přístup k MySQL

  2. Kolize konektoru MySQL a hlavičky VC2010

  3. postgres regexp_replace chtějí povolit pouze a-z a A-Z

  4. Zobrazte řádky z MySQL, kde je datum a čas v příští hodině