【问题标题】:Unique key on a view in OracleOracle 视图上的唯一键
【发布时间】:2014-08-08 18:15:34
【问题描述】:

我有一个没有唯一键的视图(虽然它有一个复合键)。我想动态创建一个数字键,以便在多次检索中保持一致。 ROWNUM 显然不是一个选项,因为它可以在从视图中插入/删除数据时重新分配。我确实可以选择切换到物化视图,但不能切换到基于查找的加载过程(时间限制)。 有没有办法在 oracle 内联或物化视图中创建一致的动态唯一键?

【问题讨论】:

  • 你能计算出一个密钥吗?例如,rank() over (order by key_col1, key_col2) 将产生一个唯一的重复值(假设 key_col1, key_col2 是唯一的),只要数据在检索之间没有变化。如果数据在检索之间发生变化,则计算的键可能会或可能不会仍然相同,具体取决于数据的性质(例如是否可以删除行,新行是否自然地排在旧行之后等)。
  • 你想用这个键做什么?每次插入或删除记录时,从基础表中的数据派生的任何内容都会更改,并且可能会更新。那么有什么意义呢?
  • @APC :目的是查看由非技术列组成的业务键是否可以一致地映射到唯一的数值。然后,键的使用者可以将此数值用作主键,而不必连接三个不同的列。

标签: oracle view key inline materialized


【解决方案1】:

试试 创建或替换一些视图 作为 选择 col1||col2 作为 ukey,col1,col2,col3,col4,etc,etc,etc 从某个表 无论在哪里

这里 col1 和 col2 是您所说的组合键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2014-01-27
    相关资源
    最近更新 更多