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

MySQL में टेबल खाली होने पर ही INSERT कैसे करें?

MySQL में तभी रिकॉर्ड डालें जब टेबल खाली हो, इसके लिए NOT EXISTS सबक्वेरी के साथ INSERT ... SELECT का उपयोग करें।

सिंटैक्स

INSERT INTO yourTableName(yourColumnName) 
SELECT 'anyValue' 
WHERE NOT EXISTS (SELECT * FROM yourTableName);

कैसे काम करता है

  • SELECT 'anyValue' - डालने वाला मान
  • WHERE NOT EXISTS (...) - टेबल खाली होने पर TRUE (1 पंक्ति), भरे होने पर FALSE (0 पंक्ति)
  • सबक्वेरी SELECT * FROM yourTableName कोई पंक्ति नहीं लौटाती यदि टेबल खाली है

उदाहरण के साथ समझें

टेबल बनाएं:

CREATE TABLE ExecuteInsertDemo (
    Name VARCHAR(20)
);

स्थिति 1: टेबल खाली नहीं है

INSERT INTO ExecuteInsertDemo VALUES('John');  -- 1 रिकॉर्ड पहले से मौजूद

-- अब INSERT का प्रयास
INSERT INTO ExecuteInsertDemo(Name) 
SELECT 'Larry' 
WHERE NOT EXISTS (SELECT * FROM ExecuteInsertDemo);

परिणाम: Query OK, 0 rows affected - कोई रिकॉर्ड नहीं डाला गया

SELECT * FROM ExecuteInsertDemo;
+------+
| Name |
+------+
| John |
+------+

स्थिति 2: टेबल खाली करें और फिर कोशिश करें

TRUNCATE TABLE ExecuteInsertDemo;  -- टेबल खाली

INSERT INTO ExecuteInsertDemo(Name) 
SELECT 'Larry' 
WHERE NOT EXISTS (SELECT * FROM ExecuteInsertDemo);

परिणाम: Query OK, 1 row affected

SELECT * FROM ExecuteInsertDemo;
+-------+
| Name  |
+-------+
| Larry |
+-------+

व्यावहारिक उपयोग के मामले

1. डिफॉल्ट/कॉन्फिगरेशन रिकॉर्ड डालना

INSERT INTO settings (setting_key, setting_value)
SELECT 'app_version', '1.0.0'
WHERE NOT EXISTS (SELECT 1 FROM settings WHERE setting_key = 'app_version');

2. एकल-पंक्ति टेबल (सिंगलटन) के लिए

INSERT INTO app_config (id, config_json)
SELECT 1, '{"theme":"dark","lang":"hi"}'
WHERE NOT EXISTS (SELECT 1 FROM app_config WHERE id = 1);

3. एकाधिक कॉलम के साथ

INSERT INTO users (username, email, role, created_at)
SELECT 'admin', 'admin@example.com', 'admin', NOW()
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username = 'admin');

वैकल्पिक: INSERT IGNORE / ON DUPLICATE KEY

यदि यूनिक कंस्ट्रेंट है:

INSERT IGNORE INTO ExecuteInsertDemo(Name) VALUES('Larry');
-- या
INSERT INTO ExecuteInsertDemo(Name) VALUES('Larry')
ON DUPLICATE KEY UPDATE Name = VALUES(Name);

नोट

  • यह तरीका **परमाणु (एटॉमिक)** है - रेस कंडीशन सुरक्षित
  • TRUNCATE ऑटो_इन्क्रीमेंट रीसेट करता है, DELETE नहीं
  • बड़े टेबल पर EXISTS तेज है क्योंकि पहली पंक्ति मिलते ही रुक जाता है
  1. - MySQL में सिंगल क्वेरी से टेम्पररी टेबल में मल्टीपल मान इन्सर्ट करना

    टेम्पररी टेबल में एक ही INSERT स्टेटमेंट से मल्टीपल मान MySQL में टेम्पररी टेबल बनाने और एक ही क्वेरी में कई मान इन्सर्ट करने का तरीका। टेम्पररी टेबल बनाएं: mysql> CREATE TEMPORARY TABLE DemoTable ( SerialNumber INT ); एक ही INSERT स्टेटमेंट में मल्टीपल मान इन्सर्ट करें: mysql> INSERT INTO

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड

  1. - MySQL टेबल में JSON डेटा कैसे डालें?

    MySQL 5.7+ में नेटिव JSON डेटा प्रकार है जो JSON दस्तावेज़ों को मान्य, संग्रहीत और क्वेरी करने की अनुमति देता है। JSON कॉलम वाली टेबल बनाएं mysql> CREATE TABLE DemoTable1832 ( ListOfNames JSON ); JSON सरणी डालें mysql> INSERT INTO DemoTable1832(ListOfNames) VALUES([Sam, Mike, Carol]); my