sql >> データベース >  >> RDS >> Mysql

古いレコードを削除して新しいレコードを挿入するMySQLトリガー

    これは、トリガーが存在しないことが原因である可能性があります。問題はここにあります

    create
      trigger 'copy_eform_data'
    

    一重引用符でcopy_eform_data 文字列です。

    この投稿をご覧ください:一重引用符、二重引用符、およびバッククォートを使用する場合

    また、NEWについても読む必要があります およびOLD トリガーのキーワード。トリガーが行と一致することはおそらくありません。

    そしてここに

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

    あなたはparanthesesを逃しています。

    それを除けば、私はあなたの論理について正直に深く考えていませんでした。なぜなら、あなたの質問全体に意味がわからないからです。なぜ重複データが必要なのですか?パフォーマンス上の理由から推測しますか?テーブルに適切なインデックスを付けてください。問題はありません。そして、テーブルの最新の5つのエントリを取得するには、単に

    を使用します。
    FROM yourTable
    ORDER BY when_was_the_entry_created_or_something DESC 
    LIMIT 5
    

    のような列を持つことができます
    created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    

    ORDER BYで使用する 。そして、おそらくその列にインデックスが必要です。



    1. Java アプリケーションで SQLServer データベースに接続できない

    2. Mysql SET NAMES UTF8-取り除く方法は?

    3. フィルタリングされたデータをJFreeChartに表示する方法

    4. 特定のID値によるMysqlの順序