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

मुझे समझ में नहीं आता कि postgresql का अगला () कैसे काम करता है, क्या कोई समझा सकता है?

NEXTVAL अनुक्रम से अगला मान प्राप्त करने के लिए एक फ़ंक्शन है।

अनुक्रम एक ऐसी वस्तु है जो लेन-देन आदि की परवाह किए बिना, लगातार बढ़ती संख्या, प्रत्येक कॉल के लिए अलग-अलग लौटाती है।

हर बार जब आप NEXTVAL . पर कॉल करते हैं , आपको एक अलग नंबर मिलता है।

यह मुख्य रूप से आपके टेबल के लिए सरोगेट प्राथमिक कुंजी उत्पन्न करने के लिए उपयोग किया जाता है।

आप इस तरह एक टेबल बना सकते हैं:

CREATE SEQUENCE mysequence;
CREATE TABLE mytable (id BIGINT NOT NULL PRIMARY KEY, value INT);

और इस तरह के मान डालें:

INSERT
INTO    mytable (id, value)
VALUES
        (NEXTVAL('mysequence'), 1),
        (NEXTVAL('mysequence'), 2);

और देखें कि आपको क्या मिलता है:

SELECT * FROM mytable;
 id | value
----+-------
  1 |     1
  2 |     2

PostgreSQL इसके लिए एक अच्छा सिंटैक्स शुगर प्रदान करता है:

CREATE TABLE mytable (id BIGSERIAL PRIMARY KEY, value INT);

जो

. के बराबर है
CREATE SEQUENCE mytable_id_seq; -- table_column_'seq'
CREATE TABLE mytable (id BIGINT NOT NULL PRIMARY KEY DEFAULT NEXTVAL('mytable_id_seq'), value INT); -- it's not null and has a default value automatically

और इस तरह इस्तेमाल किया जा सकता है:

INSERT
INTO    mytable (value)
VALUES  (1),
        (2);  -- you can omit id, it will get filled for you.

ध्यान दें कि भले ही आप अपने इंसर्ट स्टेटमेंट को रोलबैक करते हैं या दो अलग-अलग सत्रों से समवर्ती स्टेटमेंट चलाते हैं, लौटाए गए अनुक्रम मान कभी भी समान नहीं होंगे और कभी भी पुन:उपयोग नहीं किए जाएंगे (दस्तावेज़ों में ठीक प्रिंट पढ़ें, हालांकि CYCLE के तहत )।

तो आप सुनिश्चित हो सकते हैं कि आपकी प्राथमिक कुंजी के सभी मान तालिका के भीतर अद्वितीय रूप से उत्पन्न होंगे।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक तालिका से चयन करें, शर्त के आधार पर दो अन्य तालिकाओं में सम्मिलित करें

  2. pg_dump में पासवर्ड कैसे पास करें?

  3. SQLAlchemy SSL कनेक्शन की पुष्टि करता है

  4. Postgresql में एक-के-दो नहीं शून्य बाधा जोड़ना

  5. PostgreSQL डेटाबेस में MySQL डंप आयात करें