Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pemicu untuk Memperbarui Kolom Induk Berdasarkan Jumlah Tabel Anak

Anda harus menggunakan 2 pemicu untuk mencapai ini.

  1. setelah update tentang anak-anak
  2. setelah dihapus pada anak

Contoh 1 :Setelah PEMBARUAN :

delimiter //

drop trigger if exists au_on_children //

create trigger au_on_children after update on children 
for each row
begin
  declare old_totalCapacity int not null default 0;
  declare new_totalCapacity int not null default 0;

  select 
    case when homeID = OLD.homeID 
              then sum( OLD.homeID ) 
         else sum( homeID ) 
     end 
    into old_totalCapacity ,
    case when homeID = NEW.homeID 
              then sum( NEW.homeID ) 
         else sum( homeID )
     end 
    into new_totalCapacity 
    from children;

  update home 
     set capacity =  
         case when homeID = OLD.homeID 
                   then old_totalCapacity  
              else capacity 
         end ,
         case when homeID = NEW.homeID 
                   then new_totalCapacity 
              else capacity 
         end ;
end;
//

delimiter ;

Contoh 1 :Setelah DELETE :

delimiter //

drop trigger if exists ad_on_children //

create trigger ad_on_children after delete on children 
for each row
begin
  declare totalCapacity int not null default 0;

  select sum( homeID ) 
    into totalCapacity 
    from children 
   where homeID = OLD.homeID;

  update home 
     set capacity = totalCapacity 
   where homeId = OLD.homeID;
end;
//

delimiter ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah MySQL menghilangkan subekspresi umum antara klausa SELECT dan HAVING/GROUP BY?

  2. Apakah ada perbedaan dalam menggunakan INT(1) vs TINYINT(1) di MySQL?

  3. Bagan untuk diperbarui dari pilihan tarik-turun

  4. PHP PDO memilih kolom dengan tanda kutip tunggal di namanya

  5. Bagaimana cara mengawasi server replikasi MySQL saya?