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

नया असाइन किया गया अनुक्रम काम नहीं कर रहा है

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

लेकिन आप धारावाहिक का उपयोग नहीं कर रहे हैं या बड़ा सीरियल तो pg_get_serial_sequence मदद नहीं करेगा।

आप यह करके इसका समाधान कर सकते हैं:

alter sequence new_user_messages_id owned by user_messages.id

मुझे यकीन नहीं है कि यह एक पूर्ण समाधान है और कोई (हाय इरविन) शायद लापता बिट्स को भर देगा।

आप यहां धारावाहिक आपके id . के डेटा प्रकार के रूप में कॉलम। यह आपके लिए अनुक्रम बनाएगा और जोड़ देगा।

उदाहरण के लिए:

=> create sequence seq_test_id;
=> create table seq_test (id integer not null default nextval('seq_test_id'::regclass));
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
 pg_get_serial_sequence 
------------------------

(1 row)
=> alter sequence seq_test_id owned by seq_test.id;
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
 pg_get_serial_sequence 
------------------------
 public.seq_test_id
(1 row)



  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. PostgreSQL पर सिद्धांत कॉलम आईडी मौजूद नहीं है

  3. यदि PostgreSQL पर मौजूद नहीं है तो कॉलम कैसे जोड़ें?

  4. PostgreSQL 9.0 और 9.1 . के बीच एनम प्रकार के शाब्दिक क्रम में अंतर

  5. PostgreSQL:अलग-अलग स्कीमा में दो तालिकाओं में शामिल होने के लिए प्रदर्शन दंड