SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite रिप्लेस स्टेटमेंट

सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि 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 . का उपयोग कैसे किया जाता है तालिका में एक पंक्ति डालने या बदलने के लिए कथन।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑफ़लाइन उपयोग के लिए पार्स किए गए JSON को कैश कैसे करें

  2. मैं दो अलग-अलग तालिकाओं से डेटा को एक कर्सर में कैसे जोड़ूं?

  3. SQL कमांड में उपयोग किए जाने वाले विशेष तत्वों का अनुचित न्यूट्रलाइजेशन

  4. डेटाबेस लॉक नहीं है! एंड्रॉइड में

  5. SQLite MAX