暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 数据库的 Create Schema 有什么作用?

原创 盖国强 2023-02-13
1992

在 MogDB 等数据库中,Create Schema 是一项正常的操作,然而对于Oracle数据库,则大不相同。Oracle 数据库的 Schema 是和用户绑定的,当一个 user 被创建时,Schema 随之创建。

在 Oracle 7 之前,Oracle 数据库中没有独立的 Create Schema 命令。

Create Schema 的引入

在 Oracle database 7 版本中,Create Schema 作为一个独立的语句被引入,但是其作用和其他数据库中的全然不同。

在 Oracle 数据库中 CREATE SCHEMA 语法结构树如下所示:

image.png

示例语法

下面的语句为订单输入用户 mogdb,创建了表new_product,创建了视图new_product_view,并将new_product_view上的SELECT对象权限授予人力资源用户hr。

CREATE SCHEMA AUTHORIZATION mogdb
   CREATE TABLE new_product 
      (color VARCHAR2(10)  PRIMARY KEY, quantity NUMBER) 
   CREATE VIEW new_product_view 
      AS SELECT color, quantity FROM new_product WHERE color = 'RED' 
   GRANT select ON new_product_view TO hr; 

也就是说,CREATE SCHEMA 在指定的用户模式下,创建对象,在该语句的范围封锁内,所有的 DDL 语句成为一个事务,统一提交或者回滚。

为什么会有这个命令呢?
这是因为 DDL 语句在 Oracle 数据库中会隐式提交,那么如何做到像数据操作那样可回滚呢,CREATE SCHEMA就是为此而设计的。其本质上是通过设置还原点,之后执行一系列的建表、建视图和赋权语句都可以被批量回退。

应用

CREATE SCHEMA 语句在生产实践中,几乎看不到应用。

最后修改时间:2023-02-13 16:37:51
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论