MySQL
Database Trigger
SQL Insert
SQL Update
Database Management

MySQL Fire Trigger for both Insert and Update

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

Introduction

MySQL triggers are database objects that are automatically executed or fired when certain events occur. Specifically, triggers can be activated in response to actions like `INSERT`, `UPDATE`, or `DELETE` on a table. This article will focus on the creation and usage of `INSERT` and `UPDATE` triggers in MySQL. These triggers allow developers to automate tasks such as validation, logging, or cascading operations within the database.

Understanding MySQL Triggers

A trigger in MySQL is attached to a table and activated by events. You can choose to activate the trigger either before or after the defined action. This makes it possible to customize logic regarding what happens to the data being manipulated.

Syntax

The syntax to create a basic trigger is as follows:

  • trigger_name: Name of the trigger.
  • BEFORE | AFTER: The timing of the trigger action.
  • INSERT | UPDATE | DELETE: The type of event that activates the trigger.
  • table_name: The table to which the trigger is attached.
  • trigger_order (optional): Defines the order of the trigger's execution.
  • trigger_body: The SQL statements that will be executed when the trigger is fired.
  • `NEW` is a special keyword in triggers that refers to the new row being inserted.
  • A record is inserted into the `audit_log` whenever an employee is inserted into the `employees` table.
  • Logging: Triggers for `INSERT` and `UPDATE` are often used for auditing changes in crucial tables.
  • Data Validation: A `BEFORE` trigger might be used to ensure data integrity by validating data before a change is committed.
  • Cascading Actions: You can use triggers to maintain integrity across tables by automatically updating or inserting records in related tables.
  • Performance: Triggers can affect performance as they introduce additional processing for each row affected by an `INSERT` or `UPDATE`.
  • Complexity: Overusing triggers can lead to complex and difficult-to-maintain logic spread across the database.
  • Readability: Developers may find it challenging to understand the overall data flow as changes occur automatically through triggers.

Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

All Rights Reserved.