pgsql依赖性追踪
来源:互联网 发布:摩西奶奶 知乎 编辑:程序博客网 时间:2024/05/01 15:41
5.11. 依赖性追踪
如果你创建了一个包含许多表,并且带有外键约束,视图, 触发器,函数等等的复杂数据库结构。那么你就会在对象 之间隐含地创建了一个依赖性的网络。比如,一个带有外键 约束的表依赖于它引用的表。
为了保证整个数据库结构的完整性,PostgreSQL 保证 你无法删除那些还有其它对象依赖的对象。比如,试图删除我们在 Section 5.3.5 里考虑的产品表,这个时候 订单表仍然依赖它,这样的删除动作是不能成功的,会有类似下面的错误信息出现:
DROP TABLE products;NOTICE: constraint orders_product_no_fkey on table orders depends on table productsERROR: Cannot drop table products because other objects depend on it Use DROP ... CASCADE to drop the dependent objects too
这个错误信息包含一个有用的提示:如果你不想惹来分别删除所有 依赖对象的麻烦,你可以运行
DROP TABLE products CASCADE;
然后所有被依赖的对象都将被删除。在这种情况下, 它并不删除订单表,它只删除外键约束。(如果你想检查 DROP ... CASCADE 会干什么,运行不带 CASCADE 的 DROP然后阅读 NOTICE 信息。)
PostgreSQL 里的所有删除命令都 支持声明 CASCADE。当然,具体的依赖性实体 取决于对象的类型。你也可以写 RESTRICT,而 不是 CASCADE,以获取缺省的行为, 这个时候限制于删除那些其它对象依赖的对象。
注意: 根据 SQL 标准,要求至少声明 RESTRICT 或者 CASCADE 中的一个。 实际上没有哪种数据库系统强制这一点,但是缺省的行为是 RESTRICT 还是 CASCADE 则因系统而异。
注意: 在 PostgreSQL 7.3 之前的外键约束依赖性和序列字段依赖性 在升级过程中都不会得到维护或者创建。所有其它的依赖性类型 在从 7.3 版本以前的数据库升级过程中都将得到恰当的创建。
PrevHomeNext其它数据库对象Up数据操作
0 0
- pgsql依赖性追踪
- pgsql
- maven 依赖性
- 模块依赖性
- 追踪
- PGSQL 数据库
- pgSQL数据类型
- pgsql备忘录
- pgsql 5.2
- pgsql 约束
- pgsql权限
- pgsql 模式
- pgsql 排序
- pgsql 数组
- pgsql事务
- pgsql常用命令
- pgsql FAQ
- pgsql 排行榜
- 友元函数
- 六月,盈一朵花的诗意
- [QTP]vbscript通过JMail组件发送电子邮件
- 磁盘SMART信息详解
- //tools/emulator" java.io.IOException: error=2, No such file or directory"
- pgsql依赖性追踪
- ARC实战中的具体应用
- hadoop2.x整合手册【4】---mahout0.9安装部署与测试
- 深入理解Java Class文件格式(七)
- 屏幕高度,宽度
- pgsql数据操作
- 经验总结09--jquery处理JSON
- Java集合框架官方教程(6):算法
- Rs.recordcount=-1的解决办法