怎样给oracle视图加一个主键

怎样给oracle视图加一个主键,第1张

oracle是可以为视图加主键,写法: create or replace view mylist(myid,insize,outsize,statrtime,endtime,jobid,imeiid,ip,useragent UNIQUE RELY DISABLE NOVALIDATE,CONSTRAINT id_pk PRIMARY KEY (myid) RELY DISABLE NOVALIDATE)

as

select job.dm_session_id as myid,

http.dm_request_size as insize,

http.dm_response_size as outsize,

job.begin_time_stamp as statrtime,

job.end_time_stamp as endtime,

job.job_id as jobid,

job.device_external_id as imeiid,

http.client_ip as ip,

http.user_agent as useragent

from V_DM_TRACKING_LOG_JOB_SUM job,DM_TRACKING_LOG_HTTP http where job.Dm_Session_Id=http.dm_session_id

一、权限分为系统权限及对象权限。

1、系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。

1)、DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

2)、RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

3)、CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

2、对象权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

CREATE SESSION,创建会话,才可以打开界面

CREATE TABLE,创建表,可创建空表,但没有权限插入数据

CREATE SEQUENCE创建序列

CREATE VIEW,创建视图

其实ORACLE创建

主键

上面的两种方式都可以,如何使用也看个人的选择了,毕竟建立主键是针对表的 *** 作,而不像在表中大批量的查询数据,所以性能方面的问题倒是不用过多考虑。

我个人更倾向于第二种,因为第二种方式的语句更清晰,它的作用是修改表结构,添加一个约束,PK一般都

主键

的前缀,表明了这个约束是为一个列添加主键,同样还可以使用FK来建立

外键

的约束或者

check约束

等都可通过第二条语句的方式来实现!~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11356419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存