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

MySQL ट्रिगर: दूसरी टेबल में पंक्ति डालना

आइए पहले एक टेबल बनाते हैं। टेबल बनाने के लिए CREATE कमांड का उपयोग किया जाता है।

mysql> create table Table1 
-> ( 
-> id int, 
-> name varchar(100) 
-> ); 
Query OK, 0 rows affected (0.62 sec)

आइए अब दूसरी टेबल बनाते हैं।

mysql> create table Table2 
-> ( 
-> id int, 
-> name varchar(100) 
-> ); 
Query OK, 0 rows affected (0.49 sec)

अब, ट्रिगर बनाने का तरीका निम्नलिखित है।

mysql> delimiter # 
mysql> create trigger Table1Trigger after insert on Table1 
-> for each row 
-> begin 
-> insert into Table2(id, name) values (new.id, new.name); 
-> end# 
Query OK, 0 rows affected (0.29 sec) 
mysql> delimiter ;

ट्रिगर बनाने के लिए, हमें डिलीमीटर बदलने की आवश्यकता होती है।

Table1 में पंक्ति डालने से ट्रिगर सक्रिय होता है और रिकॉर्ड्स Table2 में डालता है। Table1 में रिकॉर्ड डालने के लिए।

mysql> insert into Table1 values(1,'John'),(2,'Smith'),(3,'Carol'); 
Query OK, 3 rows affected (0.28 sec) 
Records: 3 Duplicates: 0 Warnings: 0

जांचने के लिए कि रिकॉर्ड्स दोनों टेबल्स में डाले गए हैं या नहीं।

mysql> select *from Table1;

यहां आउटपुट है जो दर्शाता है कि रिकॉर्ड Table1 में सफलतापूर्वक डाला गया है।

+------+-------+ 
| id | name | 
+------+-------+ 
| 1 | John | 
| 2 | Smith | 
| 3 | Carol | 
+------+-------+ 
3 rows in set (0.00 sec)

दूसरी टेबल के लिए जांच करने के लिए।

mysql> select *from Table2;

निम्नलिखित आउटपुट दर्शाता है कि रिकॉर्ड Table2 में सफलतापूर्वक डाला गया है।

+------+-------+ 
| id | name | 
+------+-------+ 
| 1 | John | 
| 2 | Smith | 
| 3 | Carol | 
+------+-------+ 
3 rows in set (0.00 sec)
सर्वोत्तम अभ्यास: ट्रिगर में NEW कीवर्ड नई पंक्ति के मानों को संदर्भित करता है। BEFORE INSERT का उपयोग सत्यापन/संशोधन के लिए, AFTER INSERT का उपयोग संबंधित टेबल्स में कार्रवाई के लिए करें। ट्रिगर के अंदर जटिल तर्क से बचें क्योंकि यह प्रदर्शन को प्रभावित कर सकता है।
  1. - MySQL में INSERT INTO SELECT से दूसरी टेबल के स्ट्रिंग मान लेकर नई पंक्ति जोड़ें

    INSERT INTO SELECT सिंटैक्स insert into targetTable(columnName) select sourceColumn from sourceTable where condition; उदाहरण insert into demo62(employee_name) select name from demo61 where id=2; परिणाम +-------------+---------------+ | employee_id | employee_name | +-------------+---------------

  1. - MySQL में INSERT INTO SELECT से दूसरी टेबल के मान लेकर नई टेबल भरें

    सिंटैक्स insert into targetTable(col1, col2) select sourceCol1, sourceCol2 from sourceTable where condition; उदाहरण insert into demo83(id,username) select id,name from demo82 where id=101; परिणाम +------+----------+ | id | username | +------+----------+ | 101 | Bob | | 101 | David |

  1. - MySQL में एक टेबल से दूसरी टेबल में डेटा सम्मिलित करना

    परिचय MySQL में INSERT INTO ... SELECT स्टेटमेंट का उपयोग करके एक टेबल से डेटा चुनकर दूसरी टेबल में सम्मिलित किया जा सकता है। पहली टेबल निर्माण और डेटा select * from DemoTable1; +------+-----------+ | Id | FirstName | +------+-----------+ | 101 | Adam | | 102 | John | +------+-------