【问题标题】:adding primary key to sql view将主键添加到 sql 视图
【发布时间】:2011-01-03 17:17:59
【问题描述】:

读到

how to do hibernate mapping for table or view without a primary key

我想知道如何将主键添加到我的视图,因为它基本上只是一个存储查询...?

PS:oracle 10g

谢谢

【问题讨论】:

    标签: sql oracle view primary-key


    【解决方案1】:

    我们可以为视图添加一个禁用主键约束。也就是说,如果对视图运行插入或更新,则不会触发约束。数据库期望通过对基础表的约束来保持完整性。因此,该约束仅出于文档目的而存在。

    SQL> create view emp_view as select * from emp
      2  /
    
    
    View created.
    
    SQL> alter view emp_view add constraint vemp_pk primary key (empno) disable
      2  /
    
    View altered.
    
    SQL> 
    

    警告:我从未在 Hibernate 中尝试过这个,所以我不知道它是否适用于你的场景。但是,我确实知道专门针对视图层使用 Hibernate 的站点,所以我认为确实如此。请尝试语法并反馈。

    【讨论】:

    • 这真的是一个非常好的惊喜,也是我一直在寻找的东西。这只是帮助我驯服了一个让基于成本的优化器发疯的 quey。正是我在谷歌搜索时正在寻找的东西......
    • @olippuner - 很高兴它帮助了你。通过 Google 为搜索者提供答案是 SO 的主要目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多