एक सूक्ष्म अंतर है। INSERT के माध्यम से सम्मिलित रिकॉर्ड रहते हैं यदि आप सभी गैर-कुंजी फ़ील्ड को शून्य पर सेट करते हैं। यदि आप सभी गैर-कुंजी फ़ील्ड को शून्य पर सेट करते हैं तो UPDATE के माध्यम से डाले गए रिकॉर्ड्स दूर जाएं।
इस प्रयास करें:
CREATE TABLE T (
pk int,
f1 int,
PRIMARY KEY (pk)
);
INSERT INTO T (pk, f1) VALUES (1, 1);
UPDATE T SET f1=2 where pk=2;
SELECT * FROM T;
रिटर्न:
pk | f1
----+----
1 | 1
2 | 2
अब, प्रत्येक पंक्ति शून्य पर f1 सेटिंग अपडेट।
UPDATE T SET f1 = null WHERE pk = 1;
UPDATE T SET f1 = null WHERE pk = 2;
SELECT * FROM T;
ध्यान दें कि पंक्ति 1 बनी हुई है, जबकि पंक्ति 2 हटा दी गई है।
pk | f1
----+------
1 | null
यदि आप इन्हें कैसंड्रा-क्ली का उपयोग करके देखते हैं, तो आप पंक्तियों को कैसे जोड़ते हैं, इसमें एक अलग दिखाई देगा।
मुझे यह जानना है कि यह डिज़ाइन या बग द्वारा है या नहीं और इस व्यवहार को दस्तावेज किया गया है।
'INSERT' बनाम' UPDATE' के बीच कोई प्रदर्शन अंतर है? – Pankaj
@ पंकज मैं भी यह जानना चाहता हूं। क्या आप इसके बारे में कोई जानकारी जानते हैं? – niaomingjian
क्षमा करें @niaomingjian मुझे इस पर कोई और जानकारी नहीं मिली। – Pankaj