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
如果是简单视图可以直接插入数据,跟表的 *** 作是一样的;如果是复杂的试图(视图定义中有分组,聚合函数,多表关联等)不能直接插入数据,可以通过创建一个 INSTEAD 类型的触发器来 *** 作,将要插入的数据插入到组成试图的各个表中 即用你触发器中的具体 *** 作来代替你直接插入数据到视图的 *** 作;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)