sql >> Database >  >> RDS >> Mysql

MySQL-triggers instellen

Met triggers kunt u een functie in de database uitvoeren als bepaalde gebeurtenissen plaatsvinden (bijvoorbeeld een invoeging in een tabel).

Ik kan niet specifiek reageren op mysql.

Voorzorgsmaatregel:Triggers kunnen heel aantrekkelijk zijn, als je ze voor het eerst gaat gebruiken, lijken ze een wondermiddel voor allerlei problemen. Maar ze laten "magische" dingen gebeuren, als je de database niet door en door kent, kan het lijken alsof er echt vreemde dingen gebeuren (zoals invoegingen in andere tabellen, invoergegevens veranderen, enz.). Voordat ik dingen als trigger implementeer, zou ik serieus overwegen om in plaats daarvan het gebruik van een API rond het schema af te dwingen (bij voorkeur in de database, maar daarbuiten als je dat niet kunt).

Voor sommige dingen zou ik nog steeds triggers gebruiken

  • De velden "date_created" en "date_last_edited" bijhouden
  • Invoegen van "ID's" (in oracle, waar geen auto-id-veld is)
  • Wijzigingsgeschiedenis bewaren

Dingen waarvoor je geen triggers zou willen gebruiken

  • bedrijfsregels/logica
  • alles dat verbinding maakt buiten de database (bijvoorbeeld een webservice-aanroep)
  • Toegangscontrole
  • Alles wat niet transactioneel is (alles wat je doet in de trigger MOET kunnen worden teruggedraaid met de transactie)


  1. Converteer een datum naar Juliaanse dag in PostgreSQL

  2. MySQL utf8mb4, fouten bij het opslaan van emoji's

  3. Postgres now() tijdstempel verandert niet, wanneer het script werkt

  4. Groepeer op kolom en meerdere rijen in één rij meerdere kolommen