🗄️ Database Triggers

Interactive Learning with Jethalal & Bhide

🧑‍💼 Bhide:
Jethalal! मेरी website पर नया order आते ही मुझे notification चाहिए, लेकिन हर बार manually check करना पड़ता है! कोई हल है?
👨‍💼 Jethalal:
अरे Bhide! तू manually क्यों झंझट में पड़ता है? इसके लिए Database में "Trigger" लगा — जैसे automatic alarm! कोई INSERT, UPDATE या DELETE हो — database खुद action ले लेगा!

📊 Database Tables

OOrders Table

order_id: 1001
customer_name: राम
amount: ₹1500
status: pending

IInventory Table

product_id: 101
product_name: Mobile
quantity: 50
price: ₹15000

LLogs Table

log_id: 2001
action: INSERT
table_name: orders
timestamp: 2024-01-15 10:30:00

🔥AFTER INSERT Trigger

जब भी नया order आए, automatic notification और log entry बनाएगा

CREATE TRIGGER order_notification
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
  INSERT INTO logs (action, table_name, timestamp)
  VALUES ('INSERT', 'orders', NOW());
  -- Send notification logic here
END;

🔄AFTER UPDATE Trigger

Order status change होने पर inventory update करेगा

CREATE TRIGGER inventory_update
AFTER UPDATE ON orders
FOR EACH ROW
WHEN (NEW.status = 'confirmed')
BEGIN
  UPDATE inventory SET quantity = quantity - 1
  WHERE product_id = NEW.product_id;
END;

🗑️BEFORE DELETE Trigger

Order delete करने से पहले backup बनाएगा

CREATE TRIGGER backup_before_delete
BEFORE DELETE ON orders
FOR EACH ROW
BEGIN
  INSERT INTO deleted_orders
  VALUES (OLD.order_id, OLD.customer_name, OLD.amount);
END;

🎮 Try Database Actions

👆 Click any action button to see triggers in action!

💡 Key Points about Triggers

🎯 Automatic Execution

Triggers automatically चलते हैं जब specific database events होते हैं - INSERT, UPDATE, या DELETE

⚡ Real-time Response

Data change होते ही instant action लेते हैं - notifications, logging, या validation के लिए perfect

🔒 Data Integrity

Business rules enforce करने और data consistency maintain करने के लिए बहुत useful

⚠️ Performance Impact

हर operation पर चलते हैं, इसलिए light logic रखें - heavy processing avoid करें

🧑‍💼 Bhide:
अगर एक साथ 100 लोगों ने order कर दिया तो?
👨‍💼 Jethalal:
Trigger हर insert पर चलेगा — यानी 100 order आए तो 100 बार trigger active होगा। इसलिए heavy logic मत डाल उसमें — notification जैसी light चीज़ें trigger से कर, complex calculations नहीं।