मॉड्यूल पाठ (1/4)
डेटा सम्मिलित करना: सम्मिलित करें
अब तक आप डेटा पढ़ रहे हैं। कुछ लिखने का समय आ गया है. INSERT है
वह कमांड जो किसी तालिका में नई पंक्तियाँ जोड़ता है।
मूल वाक्यविन्यास
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);हमारे डेटासेट पर उदाहरण:
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Marco', 'Bianchi', 'marco.bianchi@example.com', 'Verona', 'Italia', '2025-07-15');कॉलम का नामकरण अनुशंसित अभ्यास है: यह क्वेरी बनाता है
भविष्य के स्कीमा परिवर्तनों (उदाहरण के लिए एक नया वैकल्पिक phone कॉलम) के विरुद्ध मजबूत
कुछ भी नहीं तोड़ता) और स्व-दस्तावेजीकरण।
बहु-पंक्ति सम्मिलित करें
एक एकल कथन, एकाधिक पंक्तियाँ - N अलग INSERTs से बहुत तेज़:
INSERT INTO categories (name, parent_id) VALUES
('Gaming', 1),
('Smart Home', 1),
('Cucina vegana', 8);रिटर्निंग: आपके द्वारा अभी-अभी डाले गए मानों को पढ़ना
PostgreSQL की एक खंड विशेषता: RETURNING उन पंक्तियों को लौटाती है जो
अभी बनाए गए थे. स्वतः उत्पन्न id को पुनः प्राप्त करने के लिए अत्यंत उपयोगी:
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;आउटपुट id (SERIAL द्वारा निर्दिष्ट) के साथ एक-पंक्ति तालिका है और
name.
यदि कोई कॉलम गायब है तो क्या होगा
यदि आप INSERT में कोई कॉलम छोड़ देते हैं:
- यदि यह
NOT NULLबिना किसी डिफ़ॉल्ट के → त्रुटि है; - यदि इसमें
DEFAULTहै (आईडी के लिएSERIALसहित) → इसका उपयोग किया जाता है; - यदि यह
NULLस्वीकार करता है → यहNULLबन जाता है।
-- Va bene: id è SERIAL (auto), country ha NOT NULL ma forniamo tutti i campi
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Olivia', 'Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');
-- Errore: first_name è NOT NULL e non è fornito
INSERT INTO customers (last_name, email, city, country, signed_up_on)
VALUES ('Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');आपकी बारी
ग्राहक तालिका में प्रथम नाम 'मार्को', अंतिम नाम 'बियांची', ईमेल 'marco.bianchi@example.com', शहर 'वेरोना', देश 'इटालिया' और '2025-07-15' पर हस्ताक्षरित_अप_के साथ एक नया ग्राहक डालें। सभी स्तंभों को स्पष्ट रूप से नाम दें.
संकेत दिखाएँ
VALUES में मानों का क्रम आपके द्वारा नामित कॉलम के क्रम से मेल खाना चाहिए।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
'एलेट्रोनिका' (आईडी = 1) के चाइल्ड के रूप में एक नई 'गेमिंग' श्रेणी डालें। नई बनाई गई श्रेणी की आईडी और नाम वापस करने के लिए रिटर्निंग क्लॉज का उपयोग करें।
संकेत दिखाएँ
रिटर्निंग बिल्कुल SELECT की तरह कॉलम (या '*') की एक सूची स्वीकार करता है।
3 प्रयासों के बाद समाधान उपलब्ध है