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

क्या आप पोस्टग्रेज में पहले से मौजूद कॉलम पर अनुक्रम बना सकते हैं?

ठीक है, आपको पहले उस अनुक्रम को बनाने की आवश्यकता है जिसे आप डिफ़ॉल्ट मान के लिए उपयोग करना चाहते हैं:

create sequence linelevelpmts_seq_seq;
ALTER TABLE public.linelevelpmts 
    ALTER COLUMN seq SET DEFAULT nextval('linelevelpmts_seq_seq'::regclass);

यदि आप वही प्रभाव चाहते हैं जैसे कि इसे serial . के रूप में बनाया गया था आपको अनुक्रम के "स्वामी" को भी बदलना होगा:

alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;

संपादित करें

इगोर की टिप्पणी एक अच्छी है:यदि आपके पास पहले से ही कॉलम में मान हैं seq आपको अनुक्रम के शुरुआती मान को समायोजित करना चाहिए:

select setval('linelevelpmts_seq_seq', (select max(seq) from linelevelpmts));



  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. पीजीपूल के लिए एक गाइड - संकेत और अवलोकन:भाग तीन

  3. किसी वर्ण की पहली घटना के बाद स्ट्रिंग काटें

  4. सशर्त तर्क के आधार पर तालिका स्तंभ मान अपडेट करें

  5. सीरियल प्रकार की विदेशी कुंजी - सुनिश्चित करें कि हमेशा मैन्युअल रूप से पॉप्युलेट किया जाए