Drop sequence and cascade

postgresql

Solution

The table is never a depending object of an associated sequence and is never dropped by:

DROP SEQUENCE ... CASCADE;

Only a column `DEFAULT` drawing from the sequence "depends" on the sequence and is set to `NULL` if the sequence is deleted with `CASCADE`.

It's the other way round: if the sequence is owned by a table column it is dropped with:

DROP TABLE f1 CASCADE;

For a sequence to be owned by a table column you can either use the `serial` type, or `ALTER` an existing sequence:

ALTER SEQUENCE seq1 OWNED BY t1.f1;

Problem

I would like to drop the sequence used in table and the table itself in one statement using CASCADE, but I'm getting NOTICE and table is not dropped. For example: ``` CREATE SEQUENCE seq1; CREATE TABLE t1 (f1 INT NOT NULL DEFAULT nextval('seq1')); ``` And then when I do: ``` DROP SEQUENCE seq1 CASCADE; ``` I get following message, and the table is not dropped: ``` NOTICE: drop cascades to default for table t1 column f1 ``` I'm definitely doing something wrong but these are my very first steps in PostgreSQL.

Original source