MySQL
अपडेट करें
खोज…
वाक्य - विन्यास
अद्यतन [LOW_PRIORITY] [IGNORE] तालिका नाम SET column1 = अभिव्यक्ति 1, स्तंभ 2 = अभिव्यक्ति 2, ... [जहां शर्तें]; // सरल सिंगल टेबल अपडेट
अद्यतन [LOW_PRIORITY] [IGNORE] तालिका नाम SET column1 = अभिव्यक्ति 1, column2 = अभिव्यक्ति2, ... [WHERE स्थितियां] [अभिव्यक्ति द्वारा आदेश] ASC | DESC]] [लिमिट रो_काउंट]; // ऑर्डर और सीमा के अनुसार अपडेट करें
अद्यतन [LOW_PRIORITY] [IGNORE] तालिका 1, तालिका 2, ... सेट कॉलम 1 = अभिव्यक्ति 1, कॉलम 2 = अभिव्यक्ति 2, ... [जहां शर्तें]; // एकाधिक तालिका अद्यतन
मूल अद्यतन
एक पंक्ति को अद्यतन करना
UPDATE customers SET email='[email protected]' WHERE id=1
यह क्वेरी customers
तालिका में email
की सामग्री को स्ट्रिंग [email protected]
अपडेट करती है, जहां id
का मूल्य 1 के बराबर है। डेटाबेस तालिका की पुरानी और नई सामग्री क्रमशः बाईं और दाईं ओर नीचे दी गई है:
सभी पंक्तियों को अद्यतन करना
UPDATE customers SET lastname='smith'
यह क्वेरी customers
तालिका में हर प्रविष्टि के लिए अंतिम lastname
की सामग्री को अद्यतन करती है। डेटाबेस तालिका की पुरानी और नई सामग्री क्रमशः नीचे बाईं और दाईं ओर चित्रित की गई है:
सूचना: UPDATE क्वेरी में सशर्त खंड (WHERE) का उपयोग करना आवश्यक है। यदि आप किसी भी सशर्त खंड का उपयोग नहीं करते हैं, तो उस तालिका की विशेषता के सभी रिकॉर्ड अपडेट किए जाएंगे। उपरोक्त उदाहरण में ग्राहकों की तालिका में अंतिम नाम का नया मान (स्मिथ) सभी पंक्तियों के लिए सेट किया गया है।
Join पैटर्न से अपडेट करें
एक उत्पादन तालिका कहा जाता है पर विचार करें questions_mysql
और एक मेज iwtQuestions
(आयातित worktable) एक से आयात सीएसवी डेटा के अंतिम बैच का प्रतिनिधित्व LOAD DATA INFILE
। आयात करने से पहले वर्कटेबल को काट दिया जाता है, डेटा आयात किया जाता है, और यह प्रक्रिया यहां नहीं दिखाई जाती है।
हमारे आयातित वर्कटेबल डेटा से जुड़कर हमारे प्रोडक्शन डेटा को अपडेट करें।
UPDATE questions_mysql q -- our real table for production
join iwtQuestions i -- imported worktable
ON i.qId = q.qId
SET q.closeVotes = i.closeVotes,
q.votes = i.votes,
q.answers = i.answers,
q.views = i.views;
उपनाम q
और i
का उपयोग तालिका संदर्भों को संक्षिप्त करने के लिए किया जाता है। यह विकास और पठनीयता को आसान बनाता है।
qId
, प्राथमिक कुंजी, Stackoverflow प्रश्न आईडी का प्रतिनिधित्व करता है। शामिल होने से पंक्तियों के मिलान के लिए चार कॉलम अपडेट किए गए हैं।
आदेश द्वारा और सीमा के साथ अद्यतन करें
यदि आपके अद्यतन SQL कथन में ORDER BY
क्लॉज निर्दिष्ट किया गया है, तो पंक्तियों को निर्दिष्ट किए गए क्रम में अपडेट किया जाता है।
यदि आपके SQL स्टेटमेंट में LIMIT
क्लॉज निर्दिष्ट है, तो यह उन पंक्तियों की संख्या पर एक सीमा रखता है जिन्हें अपडेट किया जा सकता है। कोई सीमा नहीं है, नहीं है LIMIT
खंड निर्दिष्ट नहीं।
ORDER BY
और LIMIT
उपयोग मल्टी टेबल अपडेट के लिए नहीं किया जा सकता है।
MySQL UPDATE
के लिए ORDER BY
और LIMIT
का सिंटेक्स है,
UPDATE [ LOW_PRIORITY ] [ IGNORE ]
tableName
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT row_count];
---> Example
UPDATE employees SET isConfirmed=1 ORDER BY joiningDate LIMIT 10
उपरोक्त उदाहरण में, 10 पंक्तियों को कर्मचारियों के joiningDate
के आदेश के अनुसार अद्यतन किया जाएगा।
एकाधिक तालिका अद्यतन
कई तालिका UPDATE
, यह शर्तों को पूरा करने वाले प्रत्येक निर्दिष्ट तालिकाओं में पंक्तियों को अद्यतन करता है। प्रत्येक मिलान पंक्ति को एक बार अपडेट किया जाता है, भले ही वह कई बार स्थितियों से मेल खाती हो।
कई तालिका में UPDATE
, ORDER BY
और LIMIT
उपयोग नहीं किया जा सकता है।
मल्टी टेबल UPDATE
का सिंटैक्स है,
UPDATE [LOW_PRIORITY] [IGNORE]
table1, table2, ...
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions]
उदाहरण के लिए दो तालिकाओं, products
और salesOrders
। मामले में, हम बिक्री के आदेश से एक विशेष उत्पाद की मात्रा को कम करते हैं जो पहले से ही रखा गया है। फिर हमें products
तालिका के अपने स्टॉक कॉलम में उस मात्रा को बढ़ाने की भी आवश्यकता है। यह नीचे की तरह एकल SQL अपडेट स्टेटमेंट में किया जा सकता है।
UPDATE products, salesOrders
SET salesOrders.Quantity = salesOrders.Quantity - 5,
products.availableStock = products.availableStock + 5
WHERE products.productId = salesOrders.productId
AND salesOrders.orderId = 100 AND salesOrders.productId = 20;
उपरोक्त उदाहरण में, '5' की salesOrders
टेबल से कम की salesOrders
और WHERE
शर्तों के अनुसार products
तालिका में बढ़ाई जाएगी।
थोक अद्यतन
विभिन्न मूल्यों के साथ कई पंक्तियों को अपडेट करते समय बल्क अपडेट का उपयोग करना अधिक तेज होता है।
UPDATE people
SET name =
(CASE id WHEN 1 THEN 'Karl'
WHEN 2 THEN 'Tom'
WHEN 3 THEN 'Mary'
END)
WHERE id IN (1,2,3);
बल्क अपडेट करके प्रत्येक पंक्ति को अद्यतन करने के लिए केवल एक क्वेरी के बजाय सर्वर पर एक क्वेरी भेजी जा सकती है। मामलों में वे सभी संभावित पैरामीटर होने चाहिए जो WHERE
क्लॉज में देखे गए हैं।