(四)PostgreSQL数据库操作示例
删除有外键约束的表
最近做数据库练习遇到一个问题,数据库里面有一个表,存在外键约束,我想要删除,所以必须先删除这些外键约束。
查询外键约束
- 查找外键约束:当你需要知道某个表的外键约束及其引用关系时,可以使用此查询。
- 删除外键约束:在删除表之前,你需要先删除相关的外键约束,此查询可以帮助你找到这些约束的名称。
SELECT conname
FROM pg_constraint
WHERE conrelid = 'branch'::regclass AND confrelid = 'employee'::regclass;
SELECT conname
FROM pg_constraint
WHERE conrelid = 'employee'::regclass AND confrelid = 'branch'::regclass;
- 目标:
- 查询 pg_constraint 系统表,找到所有从 branch 表引用到 employee 表的外键约束的名称。
- 字段:
- conname: 约束的名称。
- 条件:
- conrelid = ‘branch’::regclass: 指定约束所属的表为 branch 表。
- confrelid = ‘employee’::regclass: 指定被引用的表为 employee 表。
- 结果:
- 返回所有满足条件的外键约束的名称。
删除外键约束
ALTER TABLE "branch"
DROP CONSTRAINT "branch_manager_id_fkey";
ALTER TABLE "employee"
DROP CONSTRAINT "employee_branch_id_fkey";
在应用时,可能多个表之间相互约束,所以得找完全部的约束并删除,才能删除表