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