PostgreSQL में अनुक्रम सेट / रीसेट करने के तरीके
(जरूरी नहीं कि max(id)
)।
-
आपके पास प्रश्न में एक आसान तरीका है। आप
setval()
. के साथ एक मनमाना संख्या से शुरू करने के लिए अनुक्रम सेट कर सकते हैं :SELECT setval('tbl_id_seq');
-
फिर
ALTER SEQUENCE
. के साथ मानक SQL तरीका है वही करना:ALTER SEQUENCE myseq RESTART WITH 1;
-
यदि आप अपने अनुक्रमों को डिफ़ॉल्ट 1 के अलावा अन्य नंबरों पर पुनः आरंभ करना चाहते हैं:
CREATE TABLE foo(id serial, a text); -- creates sequence "foo_id_seq" INSERT INTO foo(a) VALUES('a'); -- seq. starts with --> 1 ALTER SEQUENCE foo_id_seq START WITH 10; -- doesn't restart sequence INSERT INTO foo(a) VALUES('b'); --> 2 ALTER SEQUENCE foo_id_seq RESTART; -- restarts sequence INSERT INTO foo(a) VALUES('c'); --> 10
-
और एक और तरीका है, जब आप TRUNCATE के साथ एक टेबल खाली करते हैं:
TRUNCATE foo RESTART IDENTITY;
अस्पष्ट रूप से
ALTER SEQUENCE foo_id_seq RESTART;
. निष्पादित करता है