我想使用 CASCADE 在一个语句中删除表中使用的序列和表本身,但我收到通知,并且表没有被删除。例如:
CREATE SEQUENCE seq1;
CREATE TABLE t1 (f1 INT NOT NULL DEFAULT nextval('seq1'));
然后当我这样做时:
DROP SEQUENCE seq1 CASCADE;
我收到以下消息,并且该表未删除:
NOTICE: drop cascades to default for table t1 column f1
我肯定做错了什么,但这是我在 PostgreSQL 中迈出的第一步。
该表绝不是关联序列的依赖对象,而是never掉落于:
DROP SEQUENCE ... CASCADE;
只有一栏DEFAULT
从序列中绘制“取决于”序列并设置为NULL
如果序列被删除CASCADE
.
反之亦然:如果序列由表列拥有,则将其删除:
DROP TABLE f1 CASCADE;
对于表列所拥有的序列,您可以使用serial
类型,或ALTER现有序列 https://www.postgresql.org/docs/current/sql-altersequence.html:
ALTER SEQUENCE seq1 OWNED BY t1.f1;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)