Categories

Advertisement
⏱️ 4 min read

What is a Trigger

N
By NotesMind
Advertisement

A Trigger is a special database object that automatically executes when a specific event occurs on a table.

You do not call a Trigger manually. It runs automatically whenever an INSERT, UPDATE, or DELETE operation happens.


आसान भाषा में (Hindi)

Trigger Database के अंदर एक Automatic SQL Program होता है।

जब Table पर कोई Event होता है जैसे:

  • INSERT
  • UPDATE
  • DELETE

तो Trigger अपने आप Execute हो जाता है।

Simple Definition:
Trigger = Event + Automatic Action


Why Do We Need Triggers?

मान लीजिए किसी Company में Employee की Salary Update होती है।

हर Salary Change का Record एक Audit Table में Save करना है।

Without Trigger:

Developer को हर बार दो Queries लिखनी पड़ेंगी।


 
UPDATE Employee
SET Salary = 60000
WHERE EmployeeID = 101;

INSERT INTO Salary_Log
VALUES(101,50000,60000,NOW());

अगर दूसरी Query भूल जाए, तो History Save नहीं होगी।


With Trigger

केवल एक Query चलेगी।


 
UPDATE Employee
SET Salary = 60000
WHERE EmployeeID = 101;

Trigger Automatically


 
Salary Updated

↓

Trigger Executes

↓

Salary_Log Table Updated

कोई Extra Query लिखने की ज़रूरत नहीं।


How Trigger Works


 
            User/Application
                    │
                    ▼
        INSERT / UPDATE / DELETE
                    │
                    ▼
              Trigger Fires
                    │
                    ▼
         SQL Statements Execute
                    │
                    ▼
            Result Saved/Updated

Types of SQL Triggers

मुख्य रूप से तीन Events पर Trigger चलता है।

1. INSERT Trigger

जब नई Row Insert होती है।


 
New Employee Added

↓

INSERT Trigger

↓

Welcome Email / Audit Log

2. UPDATE Trigger

जब Existing Data Update होता है।


 
Salary Updated

↓

UPDATE Trigger

↓

Salary History Saved

3. DELETE Trigger

जब कोई Record Delete होता है।


 
Employee Deleted

↓

DELETE Trigger

↓

Backup Record Created

BEFORE Trigger

Event होने से पहले Execute होता है।

Example


 
INSERT Request

↓

BEFORE Trigger

↓

Validation

↓

Insert Data

Use Cases

  • Validate Data
  • Prevent Invalid Records
  • Modify Values Before Saving

AFTER Trigger

Event पूरा होने के बाद Execute होता है।


 
INSERT Completed

↓

AFTER Trigger

↓

Audit Table Updated

↓

Notification Sent

Use Cases

  • Audit Logging
  • Notifications
  • Reports
  • Backup

Syntax (MySQL)


 
DELIMITER $$

CREATE TRIGGER trigger_name

BEFORE INSERT
ON Employee

FOR EACH ROW

BEGIN

SQL Statements;

END $$

DELIMITER ;

Example 1: BEFORE INSERT Trigger

Employee Table

EmployeeID EmployeeName Salary
101 Rahul 50000

Create Trigger


 
DELIMITER $$

CREATE TRIGGER CheckSalary

BEFORE INSERT

ON Employee

FOR EACH ROW

BEGIN

IF NEW.Salary <10000 THEN

SET NEW.Salary =10000;

END IF;

END $$

DELIMITER ;

Explanation

अगर कोई Salary 10000 से कम Insert करेगा,

Database Automatically उसे 10000 कर देगा।


Insert


 
INSERT INTO Employee
VALUES
(102,'Aman',5000);

Stored Data

EmployeeID EmployeeName Salary
102 Aman 10000

Example 2: AFTER UPDATE Trigger

Salary_Log Table

EmployeeID OldSalary NewSalary

Trigger


 
DELIMITER $$

CREATE TRIGGER SalaryHistory

AFTER UPDATE

ON Employee

FOR EACH ROW

BEGIN

INSERT INTO Salary_Log

VALUES

(
OLD.EmployeeID,

OLD.Salary,

NEW.Salary

);

END $$

DELIMITER ;

Update


 
UPDATE Employee

SET Salary =65000

WHERE EmployeeID =101;

Output

Salary_Log

EmployeeID OldSalary NewSalary
101 50000 65000

OLD and NEW Keywords

OLD

Update या Delete से पहले की Value।

Example


 
OLD.Salary

NEW

Update या Insert के बाद की Value।

Example


 
NEW.Salary

Trigger Execution Flow


 
INSERT / UPDATE / DELETE

          │

          ▼

      Trigger Fires

          │

          ▼

Execute SQL Statements

          │

          ▼

Return Control

Trigger vs Stored Procedure

Trigger Stored Procedure
Automatically Executes Manually Called
Event Based User Based
Cannot Call Directly Uses CALL Statement
Runs on INSERT/UPDATE/DELETE Runs Anytime

Trigger vs Function

Trigger Function
Automatic Manual Call
Event Based Returns Value
No Direct Call Used in SELECT
Mainly for Automation Mainly for Calculation
Advertisement

💬 Leave a Comment & Rating