Cursor + Trigger in MySQL

Cursor + Trigger in MySQL

In this tutorial, we will demonstrate:

  • Cursor: Processing rows with a condition.
  • Trigger: Automatically inserting audit logs after an insert operation.

We’ll use simple examples with screenshots from an online MySQL editor.

Cursor Example: Employees with Salary > 50,000

Step 1: Create Employee table & Insert sample data

CREATE TABLE Employee ( emp_id INT PRIMARY KEY, emp_name VARCHAR(50), salary INT ); INSERT INTO Employee VALUES (1, 'Alice', 40000), (2, 'Bob', 55000), (3, 'Charlie', 70000), (4, 'David', 45000); 

Step 2: Use a Cursor with Condition

DELIMITER // CREATE PROCEDURE GetHighSalaryEmployees() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE empName VARCHAR(50); DECLARE cur CURSOR FOR SELECT emp_name FROM Employee WHERE salary > 50000; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; read_loop: LOOP FETCH cur INTO empName; IF done THEN LEAVE read_loop; END IF; SELECT empName AS High_Salary_Employee; END LOOP; CLOSE cur; END// DELIMITER ; 

Step 3: Call the Procedure

CALL GetHighSalaryEmployees(); 

cursor

Trigger Example: Student Registration Audit

Step 1: Create Student & Audit tables

CREATE TABLE Students ( student_id INT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE Student_Audit ( audit_id INT AUTO_INCREMENT PRIMARY KEY, student_id INT, name VARCHAR(50), registered_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 

Step 2: Create AFTER INSERT Trigger

DELIMITER // CREATE TRIGGER after_student_insert AFTER INSERT ON Students FOR EACH ROW BEGIN INSERT INTO Student_Audit (student_id, name) VALUES (NEW.student_id, NEW.name); END // DELIMITER ; 

Step 3: Insert Data into Students

INSERT INTO Students VALUES (1, 'John Doe'); INSERT INTO Students VALUES (2, 'Jane Smith'); 

Step 4: Check Audit Table

SELECT * FROM Student_Audit; 

trigger

  • Cursor helps process row-by-row results under certain conditions.
  • Trigger automates actions (like auditing) whenever an event occurs in a table.

Both are powerful features in SQL for automation and data integrity.


Source: DEV Community.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.