MySQL Procedures, Triggers, and Events Cheatsheet

stored procedures, stored functions, delimiters, call, triggers, and scheduled events in MySQL.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

stored procedures and functions

Create reusable procedural SQL on the server.

Change the statement delimiter

Define routines containing semicolons.

sqlANYdelimiterprocedure
sql
DELIMITER $$
CREATE PROCEDURE get_user_by_email(IN p_email VARCHAR(255))
BEGIN
  SELECT id, email, full_name
  FROM users
  WHERE email = p_email;
END $$
DELIMITER ;
Notes

Changing the delimiter is the standard pattern when creating stored procedures in the mysql client.

Call a stored procedure

Execute a procedure with input arguments.

sqlANYcallprocedure
sql
CALL get_user_by_email('ava@example.com');
Notes

`CALL` invokes stored procedures defined on the server.

Create a scalar function

Return a computed value from SQL code.

sqlANYfunctiondeterministic
sql
DELIMITER $$
CREATE FUNCTION full_label(p_first VARCHAR(100), p_last VARCHAR(100))
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
  RETURN CONCAT(p_first, ' ', p_last);
END $$
DELIMITER ;
Notes

Stored functions can be used inside SELECTs and other expressions.

List stored procedures

Display procedures visible in a schema.

sqlANYshow procedure statusroutines
sql
SHOW PROCEDURE STATUS WHERE Db = 'app_db';
Notes

Useful for inventorying existing routines during maintenance.

Show procedure definition

Display the CREATE PROCEDURE statement for an existing routine.

sqlANYshow create procedureddl
sql
SHOW CREATE PROCEDURE get_user_by_email\G
Notes

Great for auditing or exporting routine definitions.

triggers and events

Automate row-level reactions and scheduled tasks.

Create a BEFORE INSERT trigger

Normalize row data before insert.

sqlANYtriggerbefore insert
sql
DELIMITER $$
CREATE TRIGGER trg_users_before_insert
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
  SET NEW.email = LOWER(NEW.email);
END $$
DELIMITER ;
Notes

Triggers can enforce lightweight normalization close to the data layer.

List triggers

Display triggers defined in the current schema.

sqlANYshow triggerstriggers
sql
SHOW TRIGGERS;
Notes

Useful when debugging hidden side effects during inserts, updates, or deletes.

Create a scheduled event

Run a periodic cleanup task inside MySQL.

sqlANYevent schedulercleanup
sql
CREATE EVENT ev_purge_expired_sessions
ON SCHEDULE EVERY 1 DAY
DO
  DELETE FROM sessions WHERE expires_at < NOW();
Notes

The event scheduler can automate recurring maintenance tasks inside the database.

List events in a database

Inspect scheduled events.

sqlANYshow eventsscheduler
sql
SHOW EVENTS FROM app_db;
Notes

Helpful when auditing background automation configured at the database layer.

Drop a trigger

Remove a trigger definition.

sqlANYdrop triggercleanup
sql
DROP TRIGGER IF EXISTS trg_users_before_insert;
Notes

Always verify dependencies before removing data-layer automation.

Recommended next

No recommendations yet.