Thread: Changeing Sequence
All, I have a table "mytable_id_seq" that looks like so. sequence_name | last_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called ----------------------+------------+--------------+---------------------+--- --------+-------------+---------+-----------+-----------mytqble_id_seq | 4 | 1 | 9223372036854775807| 1 | 1 | 30 | f | t I have data that must be entered into the table "mytable" with pre-defined ids (i.e. 1,3,5,7,25). Is it possible to change the sequence to start at "26" the last value of the previous data? Please tell me YES! I get an error: "ERROR: You can't change sequence relation t_staff_staff_id_seq" Any Help would be great! Thanks, -pete
On Tue, 26 Mar 2002, Peter Atkins wrote: > I have a table "mytable_id_seq" that looks like so. > > sequence_name | last_value | increment_by | max_value | > min_value | cache_value | log_cnt | is_cycled | is_called > ----------------------+------------+--------------+---------------------+--- > --------+-------------+---------+-----------+----------- > mytqble_id_seq | 4 | 1 | 9223372036854775807 | > 1 | 1 | 30 | f | t > > > I have data that must be entered into the table "mytable" with pre-defined > ids (i.e. 1,3,5,7,25). Is it possible to change the sequence to start at > "26" the last value of the previous data? select setval('mytqble_id_seq', 25); should make the next result 26 I believe.
On 26 Mar 2002 at 11:55, Peter Atkins wrote: > Please tell me YES! I get an error: "ERROR: You can't change sequence > relation t_staff_staff_id_seq" Yes. The above is merely a permission issue: grant update on t_staff_staff_id_seq to X... where X is you... See the docs for more details on the grant command. -- Dan Langille The FreeBSD Diary - http://freebsddiary.org/ - practical examples
When you play around with the sequence you violate the meaning of the word sequence But in any case in ver 7.2 you can use SELECT setval('mytqble_id_seq', 25); and the next value of the sequence will be 26 in older versions you can CREATE SEQUENCE 'mytqble_id_seq' START 25; or execute select nextval('mytqble_id_seq' ) 25 times http://www.pgexplorer.com Making PostgreSQL development a breeze ----- Original Message ----- From: "Peter Atkins" <Peter.Atkins@nextcard.com> To: <pgsql-sql@postgresql.org> Sent: Tuesday, March 26, 2002 9:55 PM Subject: [SQL] Changeing Sequence > All, > > I have a table "mytable_id_seq" that looks like so. > > sequence_name | last_value | increment_by | max_value | > min_value | cache_value | log_cnt | is_cycled | is_called > ----------------------+------------+--------------+---------------------+- -- > --------+-------------+---------+-----------+----------- > mytqble_id_seq | 4 | 1 | 9223372036854775807 | > 1 | 1 | 30 | f | t > > > I have data that must be entered into the table "mytable" with pre-defined > ids (i.e. 1,3,5,7,25). Is it possible to change the sequence to start at > "26" the last value of the previous data? > > Please tell me YES! I get an error: "ERROR: You can't change sequence > relation t_staff_staff_id_seq" > > Any Help would be great! > > Thanks, > -pete > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org
Why dont you insert the original values. The FK should be intact if not you are already screwed. After you have done migrating then you create the sequence with start max of table.ids. do an ALTER TABLE table ALTER COLUMN column SET DEFAULT 'seq'; Whola http://www.pgexplorer.com ----- Original Message ----- From: "Peter Atkins" <Peter.Atkins@nextcard.com> To: "'PG Explorer'" <pgmail@pgexplorer.com> Sent: Tuesday, March 26, 2002 10:26 PM Subject: RE: [SQL] Changeing Sequence > Understood! > > In this case it's a data integrity issue. Data in other tables(FK) rely on > the ids being the same as in the previous database. > > Is there another way? > > -p > > -----Original Message----- > From: PG Explorer [mailto:pgmail@pgexplorer.com] > Sent: Tuesday, March 26, 2002 12:17 PM > To: Peter Atkins; pgsql-sql@postgresql.org > Subject: Re: [SQL] Changeing Sequence > > > When you play around with the sequence you violate the meaning of the word > sequence > But in any case in ver 7.2 you can use > SELECT setval('mytqble_id_seq', 25); > and the next value of the sequence will be 26 > > in older versions you can > CREATE SEQUENCE 'mytqble_id_seq' START 25; > or execute select nextval('mytqble_id_seq' ) 25 times > > http://www.pgexplorer.com > Making PostgreSQL development a breeze > > > > ----- Original Message ----- > From: "Peter Atkins" <Peter.Atkins@nextcard.com> > To: <pgsql-sql@postgresql.org> > Sent: Tuesday, March 26, 2002 9:55 PM > Subject: [SQL] Changeing Sequence > > > > All, > > > > I have a table "mytable_id_seq" that looks like so. > > > > sequence_name | last_value | increment_by | max_value | > > min_value | cache_value | log_cnt | is_cycled | is_called > > ----------------------+------------+--------------+---------------------+- > -- > > --------+-------------+---------+-----------+----------- > > mytqble_id_seq | 4 | 1 | 9223372036854775807 | > > 1 | 1 | 30 | f | t > > > > > > I have data that must be entered into the table "mytable" with pre-defined > > ids (i.e. 1,3,5,7,25). Is it possible to change the sequence to start at > > "26" the last value of the previous data? > > > > Please tell me YES! I get an error: "ERROR: You can't change sequence > > relation t_staff_staff_id_seq" > > > > Any Help would be great! > > > > Thanks, > > -pete > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 6: Have you searched our list archives? > > > > http://archives.postgresql.org