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

पोस्टग्रेज लास्टवल () ठीक से वापस नहीं लौट रहा है

यहां संक्षिप्त संस्करण यह है कि अयोग्य lastval . का उपयोग करना एक बुरा विचार है। ट्रिगर, नियम आदि समस्याएं पैदा कर सकते हैं।

आपको lastval . से बचना चाहिए पूरी तरह से। उपयोग करें:

BEGIN;

INSERT INTO "users" ("email", "first_name", "last_name", "password", "objectstate_id", "activate_rid") 
VALUES ('[email protected]', 'Xpress', 'Care', 'f9fecdd84ee071806423adf30d6d6ff04e1a0a2c6688f2c057ddbab1d6b55d02', 4, 'EMQHTMMvViAB5BdYj0E6') 
RETURNING id;

जहां id उत्पन्न कुंजी कॉलम के नाम से होना चाहिए।

यह दृष्टिकोण बहु-मूल्यवान प्रविष्टियों को संभालेगा और INSERT INTO ... SELECT ... सही ढंग से, और ट्रिगर्स को छूने वाले अनुक्रमों के साथ कोई समस्या नहीं होगी।

यदि आपको फ़ंक्शन-कॉल आधारित दृष्टिकोण का उपयोग करना चाहिए, तो कम से कम currval('tablename_id_seq') का उपयोग करें (उपयुक्त अनुक्रम नाम पास करते हुए) lastval . के बजाय ।




  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. PostgreSQL के साथ XML विहित तुलना कैसे करें?

  3. PostgreSQL:अद्वितीय बाधा या अद्वितीय अनुक्रमणिका

  4. PostgreSQL में यूनिकोड वर्ण बदलें

  5. PostgreSQL COPY पाइप आउटपुट को gzip और फिर STDOUT में कॉपी करें