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

cách tạo trình kích hoạt cập nhật để Tăng / Giảm 1 số đến tổng số phiếu bầu

Có, bạn cần tạo after insert trigger vì điều đó

delimiter //
create trigger total_votes_count after insert on votes
for each row
begin
 if (new.value == 1) then
   update posts set total_votes = total_votes+1 
   where id = new.id_post;
 elseif (new.value == -1) then
   update posts set total_votes = total_votes-1 
   where id = new.id_post;
 end if;
end;//

delimiter //

Để xử lý bản cập nhật, tất cả vẫn như cũ, chỉ bạn cần một kích hoạt khác như

delimiter //
    create trigger total_votes_count_upd after update on votes
    for each row
    begin
     if (new.value == 1) then
       update posts set total_votes = total_votes+1 
       where id = new.id_post;
     elseif (new.value == -1) then
       update posts set total_votes = total_votes-1 
       where id = new.id_post;
     end if;
    end;//

    delimiter //

Vì bạn có 2 bảng bài đăng, bạn sẽ cần sử dụng bảng đó trong điều kiện if

delimiter //
create trigger total_votes_count after insert on votes
for each row
begin
 if (new.value == 1) then
   if (new.table_name == 'post_A') then 
     update posts_A set total_votes = total_votes+1 
     where id = new.id_post;
   else
     update posts_B set total_votes = total_votes+1 
     where id = new.id_post;
   end if;
 elseif (new.value == -1) then
   if (new.table_name == 'post_A') then
      update posts_A set total_votes = total_votes-1 
      where id = new.id_post;
   else
      update posts_B set total_votes = total_votes-1 
      where id = new.id_post;
   end if ; 
 end if;
end;//

delimiter //

Làm tương tự đối với trình kích hoạt cập nhậ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ấu hình Spring boot Docker và Mysql

  2. Làm thế nào để sử dụng Regexp trong MySQL Replace Commands?

  3. chênh lệch thời gian giữa hai hàng - mysql

  4. Cách chọn bản ghi cuối cùng từ bảng MySQL bằng cú pháp SQL

  5. sử dụng mysql SUM () trong mệnh đề WHERE