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

MySQL कंडीशनल INSERT कैसे बनाएं?


इसके लिए, आप MySQL DUAL टेबल का उपयोग करके डाल सकते हैं। कंडीशनल INSERT की अवधारणा को समझने के लिए एक टेबल बनाते हैं। टेबल बनाने का क्वेरी:

mysql> CREATE TABLE ConditionalInsertDemo (
    -> UserId INT,
    -> TotalUser INT,
    -> NumberOfItems INT
    -> ); Query OK, 0 rows affected (0.58 sec)

INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> INSERT INTO ConditionalInsertDemo VALUES(101,560,780); Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO ConditionalInsertDemo VALUES(102,660,890); Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO ConditionalInsertDemo VALUES(103,450,50); Query OK, 1 row affected (0.15 sec)

SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> SELECT * FROM ConditionalInsertDemo;

आउटपुट

+--------+-----------+---------------+
| UserId | TotalUser | NumberOfItems |
+--------+-----------+---------------+
| 101    | 560       | 780           |
| 102    | 660       | 890           |
| 103    | 450       | 50            |
+--------+-----------+---------------+
3 rows in set (0.00 sec)

अब टेबल में 3 रिकॉर्ड हैं। आप DUAL टेबल की मदद से कंडीशनल INSERT के साथ अगले रिकॉर्ड डाल सकते हैं। क्वेरी टेबल में रिकॉर्ड डालती है जब भी UserId=104 और NumberOfItems=3500 टेबल में पहले से मौजूद नहीं हैं। कंडीशनल INSERT क्वेरी इस प्रकार है:

mysql> INSERT INTO ConditionalInsertDemo(UserId,TotalUser,NumberOfItems)
    -> SELECT 104,900,3500 FROM DUAL
    -> WHERE NOT EXISTS (SELECT * FROM ConditionalInsertDemo
    -> WHERE UserId=104 AND NumberOfItems=3500); Query OK, 1 row affected (0.18 sec) Records: 1 Duplicates: 0 Warnings: 0

अब आप टेबल चेक कर सकते हैं, रिकॉर्ड डाला गया है या नहीं। सभी रिकॉर्ड प्रदर्शित करने का क्वेरी:

mysql> SELECT * FROM ConditionalInsertDemo;

आउटपुट

+--------+-----------+---------------+
| UserId | TotalUser | NumberOfItems |
+--------+-----------+---------------+
| 101    | 560       | 780           |
| 102    | 660       | 890           |
| 103    | 450       | 50            |
| 104    | 900       | 3500          |
+--------+-----------+---------------+
4 rows in set (0.00 sec)

  1. - MySQL में BEFORE INSERT ट्रिगर से दिनांक स्वचालित सेट करें

    MySQL में BEFORE INSERT ट्रिगर का उपयोग करके पंक्ति डालने से पहले दिनांक/समय कॉलम को स्वचालित रूप से वर्तमान दिनांक पर सेट कर सकते हैं। सिंटैक्स CREATE TRIGGER ट्रिगर_नाम BEFORE INSERT ON टेबल_नाम FOR EACH ROW SET NEW.कॉलम_नाम = फ़ंक्शन(); उदाहरण: DueDate को CURDATE() पर सेट करें 1. टेबल बनाएं C

  1. - MySQL में TRUNCATE TABLE से ऑटो-इन्क्रीमेंट कॉलम रीसेट करें

    TRUNCATE TABLE टेबल की सभी पंक्तियाँ हटाता है और AUTO_INCREMENT काउंटर को शुरुआती मान (डिफ़ॉल्ट 1) पर रीसेट करता है। यह DELETE से तेज़ है और लॉग नहीं करता। टेबल बनाएं mysql> CREATE TABLE DemoTable1888 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ); डेटा डालें mysql> INSERT INTO DemoTable

  1. - MySQL में INSERT से पहले ट्रिगर कैसे बनाएं?

    MySQL में BEFORE INSERT ट्रिगर किसी नई पंक्ति के इन्सर्ट होने से पहले स्वचालित रूप से निष्पादित होता है। इसका उपयोग डेटा वैलिडेशन, डिफ़ॉल्ट मान सेट करने, बिजनेस नियम लागू करने, या इन्सर्ट रोकने के लिए किया जाता है। सिंटैक्स DELIMITER // CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EA