Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

चाइल्ड टेबल काउंट के आधार पर पेरेंट कॉलम को अपडेट करने के लिए ट्रिगर

इसे प्राप्त करने के लिए आपको 2 ट्रिगर्स का उपयोग करना होगा।

  1. बच्चों पर अपडेट के बाद
  2. बच्चों पर हटाने के बाद

उदाहरण 1 :अपडेट के बाद :

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 ;

उदाहरण 1 :हटाने के बाद :

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. Jquery, PHP, Mysql . के साथ अजाक्स पेजिनेशन

  2. प्राथमिक कुंजी पर जॉइन का उपयोग करते समय मुझे किस इंडेक्स का उपयोग करना चाहिए

  3. MySQL कोलेशन:latin1_swedish_ci बनाम utf8_general_ci

  4. मैं एक ऐसी वस्तु को खोजने के लिए SQL क्वेरी की संरचना कैसे करूं जो दो विशिष्ट अन्य वस्तुओं का जनक है?

  5. एक mysql अस्थायी तालिका है जो प्रत्येक उपयोगकर्ता को उस स्क्रिप्ट तक पहुंचने के लिए अद्वितीय है जो इसे बनाता है ...?