Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में ट्रिगर के साथ INSERT कमांड पर टेबल अपडेट करना

परिचय

MySQL ट्रिगर डेटाबेस ऑब्जेक्ट हैं जो विशिष्ट घटनाओं (INSERT, UPDATE, DELETE) पर स्वचालित रूप से निष्पादित होते हैं। यह लेख दिखाता है कि कैसे एक टेबल में INSERT होने पर दूसरी टेबल को स्वचालित रूप से अपडेट करने के लिए AFTER INSERT ट्रिगर बनाया जाए।

उदाहरण: दो टेबल बनाना

mysql> CREATE TABLE DemoTable1 (
    -> Id INT,
    -> FirstName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.52 sec)
mysql> CREATE TABLE DemoTable2 (
    -> EmployeeId INT,
    -> EmployeeName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.51 sec)

ट्रिगर बनाना

mysql> DELIMITER //
mysql> CREATE TRIGGER updateDemoOnInsert
    -> AFTER INSERT ON DemoTable2
    -> FOR EACH ROW BEGIN
    ->   INSERT INTO DemoTable1 VALUES(110, 'Adam');
    -> END
    -> //
Query OK, 0 rows affected (0.14 sec)
mysql> DELIMITER ;

ट्रिगर घटक:

  • AFTER INSERT - INSERT के बाद निष्पादित होता है
  • ON DemoTable2 - लक्ष्य टेबल
  • FOR EACH ROW - प्रत्येक सम्मिलित पंक्ति के लिए एक बार निष्पादित
  • BEGIN ... END - ट्रिगर बॉडी (एकाधिक स्टेटमेंट के लिए)

डेटा डालकर ट्रिगर टेस्ट करना

mysql> INSERT INTO DemoTable2 VALUES(101, 'Mike');
Query OK, 1 row affected (0.22 sec)

दूसरी टेबल देखना (जहां INSERT हुआ)

mysql> SELECT * FROM DemoTable2;

आउटपुट:

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 101        | Mike         |
+------------+--------------+
1 row in set (0.00 sec)

पहली टेबल देखना (ट्रिगर द्वारा अपडेट)

mysql> SELECT * FROM DemoTable1;

आउटपुट:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 110  | Adam      |
+------+-----------+
1 row in set (0.00 sec)

व्याख्या

  • DemoTable2 में (101, 'Mike') डाला गया
  • ट्रिगर स्वचालित रूप से सक्रिय हुआ
  • DemoTable1 में (110, 'Adam') डाला गया (हार्डकोडेड मान)

व्यावहारिक उदाहरण: NEW रेफरेंस उपयोग करना

आमतौर पर आप सम्मिलित पंक्ति के डेटा का उपयोग करना चाहेंगे:

CREATE TRIGGER updateDemoOnInsert
AFTER INSERT ON DemoTable2
FOR EACH ROW
BEGIN
  INSERT INTO DemoTable1 (Id, FirstName)
  VALUES (NEW.EmployeeId, NEW.EmployeeName);
END;

NEW.column_name सम्मिलित/अपडेट की जा रही पंक्ति के नए मान को संदर्भित करता है।

ट्रिगर प्रकार

घटनाट्रिगर समयउपयोग
INSERTBEFORE / AFTERमान्यता, लॉगिंग, सिंक
UPDATEBEFORE / AFTERऑडिट, व्युत्पन्न कॉलम अपडेट
DELETEBEFORE / AFTERआर्काइव, सफाई

ट्रिगर डेटा अखंडता और ऑडिटिंग बनाए रखने के लिए शक्तिशाली उपकरण हैं।

  1. Java MySQL का उपयोग करके MySQL टेबल अपडेट करें Java MySQL का उपयोग करके MySQL टेबल अपडेट करें

    JDBC में PreparedStatement का उपयोग करके पैरामीटरीकृत अपडेट को सुरक्षित रूप से निष्पादित करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable(Id INT, FirstName VARCHAR(40)); Query OK, 0 rows affected (0.62 sec) INSERT INTO DemoTable VALUES(100,Chris),(111,Mike),(121,Sam); अपडेट से पहले SELECT

  1. Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें

    JDBC Statement या PreparedStatement का उपयोग करके Java एप्लिकेशन से MySQL में रिकॉर्ड डालें। टेबल बनाना CREATE TABLE DemoTable( Id INT, Name VARCHAR(30), CountryName VARCHAR(30), Age INT ); Query OK, 0 rows affected (0.66 sec) Java कोड (Statement) 0) { System.out.

  1. Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें? Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें?

    Java-MySQL कनेक्शन कोड में एक कॉलम इन्सर्ट करने के लिए INSERT INTO स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.54 sec) MySQL टेबल में केवल एक कॉलम इन्सर्ट करने का जावा कोड यहाँ है। उदाहरण