先查引用
先查引用
-- MySQL:查引用该表的外键
SELECT table_name, constraint_name
FROM information_schema.KEY_COLUMN_USAGE
WHERE referenced_table_name = 'orders';
-- PostgreSQL:查依赖对象
SELECT dependent_ns.nspname AS schema, dependent_view.relname AS view
FROM pg_depend
JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid
JOIN pg_class AS dependent_view ON pg_rewrite.ev_class = dependent_view.oid
WHERE pg_depend.refobjid = 'orders'::regclass;| MySQL | 存在外键引用时 DROP 直接失败(除非 FOREIGN_KEY_CHECKS=0,此时会留下悬空引用风险) |
|---|---|
| PostgreSQL | 默认 RESTRICT 拒绝删除;CASCADE 静默删除依赖对象 |
| 兜底 | 确认最近备份可用,或先用 RENAME 改名观察,再择期删除 |