Обсуждение: [GENERAL] "alter table...if exists... add bigserial "still adds extra sequence

Поиск
Список
Период
Сортировка

[GENERAL] "alter table...if exists... add bigserial "still adds extra sequence

От
hvjunk
Дата:
Good day,
 See the sequence below, Postgresql 9.6.5 on Debian using the postgresql repository.

Question: Is this expected behaviour?



postgres@tracsdbhvt01:~$ cat test-serial.sql
create database test;
\c test
create table test_serial ( teststring varchar(5));
alter table test_serial add column if not exists uid BIGSERIAL;
alter table test_serial add column if not exists uid BIGSERIAL;
\d

postgres@tracsdbhvt01:~$ psql -p 5433 < test-serial.sql
CREATE DATABASE
You are now connected to database "test" as user "postgres".
CREATE TABLE
ALTER TABLE
NOTICE:  column "uid" of relation "test_serial" already exists, skipping
ALTER TABLE                 List of relationsSchema |         Name         |   Type   |  Owner
--------+----------------------+----------+----------public | test_serial          | table    | postgrespublic |
test_serial_uid_seq | sequence | postgrespublic | test_serial_uid_seq1 | sequence | postgres 
(3 rows)




--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[GENERAL] Re: "alter table...if exists... add bigserial "still adds extrasequence

От
hvjunk
Дата:
> On 25 Sep 2017, at 09:51 , hvjunk <hvjunk@gmail.com> wrote:
>
> Good day,
>
>  See the sequence below, Postgresql 9.6.5 on Debian using the postgresql repository.
>
> Question: Is this expected behaviour?

I guess it might be, but the “bug” is that the excessive/unused sequence isn’t removed:

test=# \d test_serial                                 Table "public.test_serial"  Column   |         Type         |
                   Modifiers 
------------+----------------------+-----------------------------------------------------------teststring | character
varying(5)|uid        | bigint               | not null default nextval('test_serial_uid_seq'::regclass) 

>
>
>
> postgres@tracsdbhvt01:~$ cat test-serial.sql
> create database test;
> \c test
> create table test_serial ( teststring varchar(5));
> alter table test_serial add column if not exists uid BIGSERIAL;
> alter table test_serial add column if not exists uid BIGSERIAL;
> \d
>
> postgres@tracsdbhvt01:~$ psql -p 5433 < test-serial.sql
> CREATE DATABASE
> You are now connected to database "test" as user "postgres".
> CREATE TABLE
> ALTER TABLE
> NOTICE:  column "uid" of relation "test_serial" already exists, skipping
> ALTER TABLE
>                  List of relations
> Schema |         Name         |   Type   |  Owner
> --------+----------------------+----------+----------
> public | test_serial          | table    | postgres
> public | test_serial_uid_seq  | sequence | postgres
> public | test_serial_uid_seq1 | sequence | postgres
> (3 rows)
>


>



--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general