PostgreSQL, Oracle और SQL Server सभी इसे एक परमाणु ऑपरेशन के रूप में मानते हैं। निम्न SQL Fiddle देखें, और निम्न SQL के व्यवहार को देखने के लिए सर्वर को स्विच करें :
CREATE TABLE Swap (
a CHAR(1),
b CHAR(1)
);
INSERT INTO Swap (a, b) VALUES ('a', 'b');
UPDATE Swap SET a = b, b = a;
SELECT * FROM Swap;
MySQL एकमात्र RBDMS था जो अद्यतन के बाद समान मान वाले दोनों स्तंभों के साथ इसे लागू करता है।
जहां तक आप इसे कैसे हल करेंगे, मैं इसके बजाय डेटाबेस से मूल्यों को खींचूंगा, अपने आवेदन के अंदर गणनाएं (आपके अपडेट स्टेटमेंट के बजाय) करें, और फिर गणना किए गए मानों के साथ डेटाबेस को अपडेट करें। इस तरह आप गारंटी दे सकते हैं कि गणना एक सुसंगत तरीके से की जाएगी।