सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite का उपयोग कैसे करें REPLACE
तालिका में मौजूदा पंक्ति को सम्मिलित करने या बदलने के लिए कथन।
SQLite का परिचय REPLACE
बयान
REPLACE
. का विचार कथन यह है कि जब एक UNIQUE
या PRIMARY KEY
बाधा उल्लंघन होता है, यह निम्न कार्य करता है:
- सबसे पहले, उस मौजूदा पंक्ति को हटा दें जो बाधा उल्लंघन का कारण बनती है।
- दूसरा, एक नई पंक्ति डालें।
दूसरे चरण में, यदि कोई बाधा उल्लंघन जैसे, NOT NULL
बाधा उत्पन्न होती है, REPLACE
स्टेटमेंट कार्रवाई को रोक देगा और लेन-देन को वापस ले लेगा।
निम्नलिखित REPLACE
. के सिंटैक्स को दर्शाता है बयान।
INSERT OR REPLACE INTO table(column_list)
VALUES(value_list);
Code language: SQL (Structured Query Language) (sql)
या संक्षिप्त रूप में:
REPLACE INTO table(column_list)
VALUES(value_list);
Code language: SQL (Structured Query Language) (sql)
आइए SQLite REPLACE
. का उपयोग करने के कुछ उदाहरण देखें यह कैसे काम करता है यह समझने के लिए कथन।
एसक्यूलाइट REPLACE
कथन उदाहरण
सबसे पहले, positions
. नाम की एक नई टेबल बनाएं निम्नलिखित संरचना के साथ।
CREATE TABLE IF NOT EXISTS positions (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
min_salary NUMERIC
);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
दूसरा, कुछ पंक्तियों को positions
. में डालें टेबल।
INSERT INTO positions (title, min_salary)
VALUES ('DBA', 120000),
('Developer', 100000),
('Architect', 150000);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
तीसरा, नीचे दिए गए SELECT
का इस्तेमाल करके इंसर्ट की पुष्टि करें बयान।
SELECT * FROM positions;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
निम्न कथन title
. पर एक अद्वितीय अनुक्रमणिका बनाता है positions
. का स्तंभ तालिका यह सुनिश्चित करने के लिए कि इसमें कोई डुप्लिकेट स्थिति शीर्षक नहीं है:
CREATE UNIQUE INDEX idx_positions_title
ON positions (title);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
मान लीजिए, आप positions
. में एक स्थिति जोड़ना चाहते हैं तालिका यदि मौजूद नहीं है, तो स्थिति मौजूद होने की स्थिति में, वर्तमान को अपडेट करें।
निम्नलिखित REPLACE
कथन positions
में एक नई पंक्ति सम्मिलित करता है तालिका क्योंकि स्थिति शीर्षक Full Stack Developer
positions
में नहीं है टेबल।
REPLACE INTO positions (title, min_salary)
VALUES('Full Stack Developer', 140000);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
आप REPLACE
को सत्यापित कर सकते हैं SELECT
. का उपयोग करके ऑपरेशन बयान।
SELECT
id,title,min_salary
FROM
positions;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
निम्नलिखित कथन देखें।
REPLACE INTO positions (title, min_salary)
VALUES('DBA', 170000);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
सबसे पहले, SQLite ने UNIQUE
की जाँच की बाधा।
दूसरा, क्योंकि इस कथन ने UNIQUE
. का उल्लंघन किया है DBA
. जोड़ने का प्रयास करके बाधा शीर्षक जो पहले से मौजूद है, SQLite ने मौजूदा पंक्ति को हटा दिया।
तीसरा, SQLite ने REPLACE
. द्वारा प्रदान किए गए डेटा के साथ एक नई पंक्ति सम्मिलित की बयान।
ध्यान दें कि REPLACE
कथन का अर्थ है INSERT
या REPLACE
, नहीं INSERT
या UPDATE
।
निम्नलिखित कथन देखें।
REPLACE INTO positions (id, min_salary)
VALUES(2, 110000);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
स्टेटमेंट ने min_salary
. को अपडेट करने की कोशिश की है आईडी 2 वाले पद के लिए, जो कि डेवलपर है।
सबसे पहले, आईडी 2 वाली स्थिति पहले से मौजूद है, REPLACE
कथन इसे हटा देता है।
फिर, SQLite ने दो स्तंभों के साथ एक नई पंक्ति सम्मिलित करने का प्रयास किया:( id
, min_salary
) हालांकि, यह NOT NULL
. का उल्लंघन करता है शीर्षक कॉलम की बाधा। इसलिए, SQLite लेन-देन को वापस ले लेता है।
अगर title
कॉलम में NOT NULL
नहीं है बाधा, REPLACE
कथन एक नई पंक्ति सम्मिलित करेगा जिसका शीर्षक स्तंभ NULL
है ।
इस ट्यूटोरियल में, हमने आपको दिखाया है कि SQLite REPLACE
. का उपयोग कैसे किया जाता है तालिका में एक पंक्ति डालने या बदलने के लिए कथन।