हम कंडीशनल इंसर्ट का उपयोग कर सकते हैं यानी नई रो इंसर्शन के मामले में INSERT INTO कमांड के साथ WHERE क्लॉज। इसे निम्नलिखित तरीकों से किया जा सकता है -
डमी टेबल की सहायता से
इस मामले में, हम कुछ शर्तों के साथ डमी टेबल से मान सम्मिलित करते हैं। वाक्य रचना इस प्रकार हो सकती है -
INSERT INTO table_name(column1,column2,column3,…) Select value1,value2,value3,… From dual WHERE [conditional predicate];
उदाहरण
mysql> Create table testing(id int, item_name varchar(10)); Query OK, 0 rows affected (0.15 sec) mysql> Insert into testing (id,item_name)Select 1,'Book' From Dual Where 1=1; Query OK, 1 row affected (0.11 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Select * from testing; +------+-----------+ | id | item_name | +------+-----------+ | 1 | Book | +------+-----------+ 1 row in set (0.00 sec)
ऊपर के उदाहरण में, हमने एक टेबल 'टेस्टिंग' बनाई है और उसमें पंक्तियों को सम्मिलित करने के लिए हमने एक शर्त के साथ डमी टेबल डुअल का उपयोग किया है। यदि स्थिति सही है तो MySQL पंक्ति को तालिका में सम्मिलित करें अन्यथा नहीं।
समान संरचना तालिका की सहायता से
यदि हम एक ऐसी तालिका में सम्मिलित करना चाहते हैं जिसकी संरचना किसी अन्य तालिका के समान है तो निम्न उदाहरण में यह प्रदर्शित किया गया है कि हम सशर्त सम्मिलित कैसे कर सकते हैं यानी हम INSERT INTO कथन के साथ WHERE क्लॉज का उपयोग कैसे कर सकते हैं।
mysql> Insert into dummy1(id,name)select id, name from dummy Where id =1; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from dummy; +------+--------+ | id | Name | +------+--------+ | 1 | Gaurav | | 2 | Aarav | +------+--------+ 2 rows in set (0.00 sec) mysql> select * from dummy1; +------+--------+ | id | Name | +------+--------+ | 1 | Gaurav | +------+--------+ 1 row in set (0.00 sec)
यहाँ ऊपर के उदाहरण में, हमने तालिका 'dummy1' में मानों को सम्मिलित किया है, जिसमें तालिका 'dummy' के समान संरचना है, केवल उस पंक्ति को सम्मिलित करने की शर्त के साथ जहाँ 'id =1' है।