Oracle数据库:数据定义与性能优化
1. 可延迟约束
在Oracle数据库中, CREATE SCHEMA 命令名容易让人误解,因为它实际上并不创建模式,Oracle模式是通过 CREATE USER 命令创建的,且该命令只有在模式名与你的Oracle数据库用户名相同时才会成功。此命令的组件可以按任意顺序指定,并且在每个组件定义中,你可以引用其他(更早或更晚的)模式组件。
Oracle数据库支持可延迟约束,允许你指定何时检查约束,有以下两种情况:
- IMMEDIATE :在语句级别进行检查。
- DEFERRED :在事务结束时进行检查。
默认情况下,所有创建的约束都是不可延迟的( NOT DEFERRABLE )。若要使约束可延迟,需在约束定义中添加 DEFERRABLE 选项,且约束默认的检查行为是 INITIALLY IMMEDIATE 。你可以使用 SET CONSTRAINTS 命令在事务级别动态更改或覆盖可延迟约束的默认行为。
总结如下:
- 默认情况下,Oracle数据库总是使用立即约束检查。
- 必须显式允许约束可延迟,默认约束不可延迟。
- 若约束可延迟,可选择默认的检查方式:立即或延迟。
- 若约束可延迟,可使用 SET CONSTRAINTS 命令影响其行为。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



