Re: TRUNCATE TABLE with IDENTITY
От | Zoltan Boszormenyi |
---|---|
Тема | Re: TRUNCATE TABLE with IDENTITY |
Дата | |
Msg-id | 47E92B11.4040006@cybertec.at обсуждение исходный текст |
Ответ на | Re: TRUNCATE TABLE with IDENTITY (Simon Riggs <simon@2ndquadrant.com>) |
Ответы |
Re: TRUNCATE TABLE with IDENTITY
Re: TRUNCATE TABLE with IDENTITY Re: TRUNCATE TABLE with IDENTITY |
Список | pgsql-hackers |
Simon Riggs írta: > On Tue, 2008-03-25 at 09:08 -0700, Steve Crawford wrote: > >> Simon Riggs wrote: >> >>> RESTART IDENTITY will reset the SERIAL sequences back to the original >>> start value. >>> >>> >> Assuming this feature were to be added.... >> >> In cases where the same sequence has been used across multiple tables, >> what will be the appropriate response when a user attempts to TRUNCATE >> one of those tables with RESTART IDENTITY? >> > > Well, I'm suggesting it as a TODO item, based on the standard. It would > be for whoever took this up to unravel that. > > Since that's a weak answer, I'd say it should only reset sequences that > have been placed there automatically through the use of SERIAL or > BIGSERIAL datatypes. > All of them? PostgreSQL allow multiple SERIALs to be present, the standard allows only one IDENTITY column in a table. And what about this case below? CREATE TABLE t1 (id1 serial, ...); ALTER SEQUENCE seq_t1_id1 RESTART WITH 5432 CYCLE; or the equivalent CREATE SEQUENCE seq_t1_id1 START WITH 5432 CYCLE; CREATE TABLE t1 (id1 serial, ...); ALTER SEQUENCE seq_t1_id1 OWNED BY t1.id1; PostgreSQL doesn't keep the START WITH information. But it should to perform a "restart" on the sequence, using the minval in this case wouldn't be correct. -- ---------------------------------- Zoltán Böszörményi Cybertec Schönig & Schönig GmbH http://www.postgresql.at/
В списке pgsql-hackers по дате отправления: