Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kích hoạt MySQL để xóa bản ghi cũ và chèn bản ghi mới

Điều đó rất có thể là do trình kích hoạt của bạn thậm chí không tồn tại. Vấn đề là ở đây

create
  trigger 'copy_eform_data'

Với các dấu ngoặc kép duy nhất copy_eform_data là một chuỗi.

Hãy xem bài đăng này: Khi nào sử dụng dấu ngoặc kép, dấu ngoặc kép và dấu ngoặc kép?

Ngoài ra, bạn nên đọc thêm về NEWOLD từ khóa trong trình kích hoạt. Trình kích hoạt của bạn có thể không bao giờ khớp với một dòng.

Và đây

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

bạn đang thiếu các chú thích.

Ngoài tất cả những điều đó, thành thật mà nói, tôi không thực sự suy nghĩ sâu sắc về logic của bạn, bởi vì tôi không thấy điểm nào trong toàn bộ câu hỏi của bạn. Tại sao bạn muốn có dữ liệu trùng lặp? Tôi đoán vì lý do hiệu suất? Đã lập chỉ mục bảng của bạn một cách thích hợp và sẽ không có vấn đề gì. Và để nhận 5 mục nhập mới nhất trong bảng của bạn, chỉ cần sử dụng

FROM yourTable
ORDER BY when_was_the_entry_created_or_something DESC 
LIMIT 5

Bạn có thể có các cột như

created timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

để sử dụng trong ORDER BY của bạn . Và bạn có thể muốn có một chỉ mục trên cột đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cố gắng điền vào menu thả xuống trong codeigniter với dữ liệu mysql

  2. Lỗi cú pháp với hàm Rand () trong MySQL trong Delphi

  3. Cú pháp MySQL Lỗi cú pháp đúng để sử dụng gần 'desc

  4. Câu lệnh MySql chuẩn bị không dính

  5. Cài đặt MySQL-python không thành công với trạng thái thoát 1120