![深入浅出PostgreSQL](https://wfqqreader-1252317822.image.myqcloud.com/cover/148/30573148/b_30573148.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.7 删除数据表
本节主要介绍删除如何没有被关联的表及有关联的表。
3.7.1 实例14:删除没有被关联的表
如果要删除一个表,则可以使用DROP TABLE命令。DROP TABLE命令的语法格式如下:
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/68_1.jpg?sign=1739251246-bWb5PexkVDQiCF23Qyo2ELzAw0QWqj0L-0-dbaf2c40d8bec2c48eaf559d0f74bd67)
删除一个表,会同时删除该表相关的索引、触发器和约束等相关对象。
删除一个独立的表,代码如下:
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/68_2.jpg?sign=1739251246-f1sLbgpit5cBZsPz9lnThscmC9gXboM4-0-04ac8d3df3f8b833ec82e52f258bbec0)
DROP TABLE命令还可以同时删除多个表,表与表之间使用逗号分隔,代码如下:
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/68_3.jpg?sign=1739251246-fLhOljcA6a5oQEOVOU9ovnnwmNlU2KIg-0-85f37c7e4293446688bfdddca062161b)
3.7.2 实例15:删除被其他表关联的主表
如果一个表被其他表引用,例如,employee表的主键empid被excellent_employee表作为外键,则代码如下:
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/68_4.jpg?sign=1739251246-G0SPUsUULSDuyxHLWSnrxmv62IqitZBW-0-a0d1ec8819997d0eb33d5f5983890c39)
使用DROP TABLE命令直接删除表会报错,报错信息如下:
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/68_5.jpg?sign=1739251246-Vgvipb988boYHSAMImgacXvxHvsc93Vb-0-78790a072bd27e26e566f2ad24c595da)
如果删除一个被引用的表,则需要添加CASCADE关键字,代码如下:
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/68_6.jpg?sign=1739251246-0GEuutbcjytlguWTpVv2niGse22XxDMG-0-f310c4084c2da3dc9472fcb2aed476cf)
![](https://epubservercos.yuewen.com/8D7397/16679181404813706/epubprivate/OEBPS/Images/69_1.jpg?sign=1739251246-oSYhMSlDyAXUvmOSEdnnHUS9xwyahjTk-0-088617b584fcce122e1e23feb5f68415)
需要注意的是,删除主表只会删除子表的外键引用约束,并不会删除子表,也不会删除子表中的记录。