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

क्या मैं Postgresql को लेन-देन में त्रुटियों को अनदेखा करने के लिए कह सकता हूँ?

(अद्यतन:हाथ से इसकी कोई आवश्यकता नहीं है, मैंने पोस्टग्रेस्क्ल मेलिंग सूचियों में पूछा, और यह बदल गया कि यह व्यवहार पहले से ही psql क्लाइंट में ON_ERROR_ROLLBACK सेट द्वारा लागू किया गया है)

साइमन के उत्तर (+1) पर विस्तृत करने के लिए, आपके परिदृश्य में आप प्रत्येक इंटरैक्टिव क्वेरी के बाद हमेशा एक ही नाम के साथ एक बचत बिंदु जोड़ सकते हैं (यदि क्वेरी सफल होती है तो यह पिछले को ओवरराइट करता है)। त्रुटि के मामले में, आप अंतिम सहेजे गए एक पर वापस जाते हैं और वहां से जारी रखते हैं।

इस कार्य पैटर्न का एक उदाहरण:

db=# select * from test_gral ;
 i |  t   |  n
---+------+------
 1 | text | 10.0
(1 row)

db=# begin;
BEGIN
db=#  insert into test_gral values (2,'xx',20); savepoint sp;
INSERT 0 1
SAVEPOINT
db=#  insert into test_gral values (3,'xx',30); savepoint sp;
INSERT 0 1
SAVEPOINT
db=#  insert into test_gralxx values (4,'xx',40); savepoint sp;
ERROR:  relation "test_gralxx" does not exist
LINE 1: insert into test_gralxx values (4,'xx',40);
                    ^
ERROR:  current transaction is aborted, commands ignored until end of transaction block
db=# ROLLBACK TO SAVEPOINT sp;
ROLLBACK
db=#  insert into test_gral values (4,'xx',40); savepoint sp;
INSERT 0 1
SAVEPOINT
db=# commit;
COMMIT
db=# select * from test_gral ;
 i |  t   |  n
---+------+------
 1 | text | 10.0
 2 | xx   |   20
 3 | xx   |   30
 4 | xx   |   40
(4 rows)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी csv फ़ाइल के कुछ स्तंभों को तालिका में कॉपी करें

  2. कर्सर.execute(im_entry.test (+entrym+) VALUES ('+p+');)

  3. PostgreSQL में सभी कार्यों को सूचीबद्ध करने के 3 तरीके

  4. विशिष्ट क्रम में एकाधिक मानों द्वारा एसक्यूएल ऑर्डर?

  5. पोस्टग्रेज - चयन से तालिका बनाएं