I teorin kan en utlösare hålla en sammanfattningstabell uppdaterad korrekt, så länge som:
- Du inaktiverar inte utlösaren
- Du uppdaterar inte sammanfattningstabellen direkt
- Du gör inga ändringar i källdata via TRUNCATE TABLE (som du noterade)
Även:
- Du måste se översiktstabellen med ett korrekt initialvärde
- Du måste använda InnoDB för både källtabellen och sammanfattningstabellen, så uppdateringar är atomära
Att underhålla en sammanfattningstabell är ett exempel på denormalisering . Som med all denormalisering riskerar detta dataavvikelser. Du är ansvarig för att upprätthålla dataintegritet; databasen är begränsad i hur mycket den kan hjälpa dig att göra det.
Jag rekommenderar att du behöver dubbelkolla sammanfattningstabellen då och då (t.ex. timvis kan räcka) för att se till att den inte har gått ur synk, och korrigera den om den har gjort det. Det är upp till dig att göra detta, eftersom databasen inte kan kontrollera det åt dig.