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

पता लगाएँ कि क्या पंक्ति को अद्यतन या सम्मिलित किया गया था

आप सिस्टम कॉलम को देख सकते हैं xmax अंतर बताने के लिए। यह 0 है इस मामले में सम्मिलित पंक्तियों के लिए।

CREATE TABLE tbl(id int PRIMARY KEY, col int);
INSERT INTO tbl VALUES (1, 1);
INSERT INTO tbl(id, col)
VALUES (1,11), (2,22)
ON     CONFLICT (id) DO UPDATE
SET    col = EXCLUDED.col
RETURNING *, (xmax = 0) AS inserted;

यह एक अनियंत्रित कार्यान्वयन विवरण पर निर्माण कर रहा है जो भविष्य के रिलीज में बदल सकता है (भले ही असंभव हो)। यह पोस्टग्रेज 9.5 और 9.6 के लिए काम करता है।

इसकी खूबी:आपको अतिरिक्त कॉलम पेश करने की आवश्यकता नहीं है।

विस्तृत विवरण:

  • PostgreSQL अप्सर्ट सिस्टम कॉलम XMIN, XMAX और अन्य का उपयोग करके सम्मिलित और अपडेट की गई पंक्तियों में अंतर करता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL के लिए ओपन सोर्स बैकअप प्रबंधन की वर्तमान स्थिति

  2. सुपरयूजर भूमिका के बिना एक्सटेंशन नहीं बना सकते

  3. एसक्यूएल स्टेटमेंट एरर:कॉलम .. मौजूद नहीं है

  4. row_to_json . के साथ पुनरावर्ती क्वेरी को पोस्टग्रेज करता है

  5. sqlalchemy में चेतावनी बंद करें