Re: Clarify 'dependent objects' for DROP COLUMN
От | robins |
---|---|
Тема | Re: Clarify 'dependent objects' for DROP COLUMN |
Дата | |
Msg-id | CAEP4nAzCAOC_vAd0FzE8wD-jnD8_DGGt+BWCRmhhPuHfbHF55g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Clarify 'dependent objects' for DROP COLUMN (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: Clarify 'dependent objects' for DROP COLUMN
|
Список | pgsql-docs |
Thanks Bruce.
I think by using the word 'constraint' I understand what the documentation meant.
Both my queries (samples given below) arose from the fact that although there was a 'relation', this is probably not what the documentation was talking about.
Q1:
postgres=# CREATE TABLE serialTest3 (f1 bigint);
CREATE TABLE
postgres=# CREATE SEQUENCE seq4 OWNED BY serialTest3.f1;
CREATE SEQUENCE
postgres=# DROP SEQUENCE seq4;
DROP SEQUENCE
postgres=#
Q2:
postgres=# CREATE TABLE serialTest3 (f1 bigint);
CREATE TABLE
postgres=# CREATE SEQUENCE seq4 OWNED BY serialTest3.f1;
CREATE SEQUENCE
postgres=# ALTER TABLE serialTest3 DROP COLUMN f1 RESTRICT;
ALTER TABLE
postgres=#
I was working on some regression tests and then just wanted to be sure that this (Q2 in particular) was perfectly legal, before adding checks for them.
Thanks again.
--
Robins
Tharakan
---------- Forwarded message ----------
I had to dig a little bit on this. The "dependent" object would be the
removal of the constraint depending on the sequence. Here is an
example:
test=> create table test (x serial);
CREATE TABLE
test=> \d test
Table "public.test"
Column | Type | Modifiers
--------+---------+--------------------------------------------------
x | integer | not null default nextval('test_x_seq'::regclass)
test=> \ds
List of relations
Schema | Name | Type | Owner
--------+------------+----------+----------
public | test_x_seq | sequence | postgres
(1 row)
--> test=> drop sequence test_x_seq;
ERROR: cannot drop sequence test_x_seq because other objects depend on it
DETAIL: default for table test column x depends on sequence test_x_seq
HINT: Use DROP ... CASCADE to drop the dependent objects too.
--> test=> drop sequence test_x_seq cascade;
NOTICE: drop cascades to default for table test column x
DROP SEQUENCE
test=> \d test
Table "public.test"
Column | Type | Modifiers
--------+---------+-----------
x | integer | not null
If this does not answer your questions, please post queries showing the
problem. Thanks.
removal of the constraint depending on the sequence. Here is an
example:
test=> create table test (x serial);
CREATE TABLE
test=> \d test
Table "public.test"
Column | Type | Modifiers
--------+---------+--------------------------------------------------
x | integer | not null default nextval('test_x_seq'::regclass)
test=> \ds
List of relations
Schema | Name | Type | Owner
--------+------------+----------+----------
public | test_x_seq | sequence | postgres
(1 row)
--> test=> drop sequence test_x_seq;
ERROR: cannot drop sequence test_x_seq because other objects depend on it
DETAIL: default for table test column x depends on sequence test_x_seq
HINT: Use DROP ... CASCADE to drop the dependent objects too.
--> test=> drop sequence test_x_seq cascade;
NOTICE: drop cascades to default for table test column x
DROP SEQUENCE
test=> \d test
Table "public.test"
Column | Type | Modifiers
--------+---------+-----------
x | integer | not null
If this does not answer your questions, please post queries showing the
problem. Thanks.
В списке pgsql-docs по дате отправления: