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

Oracle 在运行时将计算值存储在变量中,而不使用触发器。

askTom 2017-11-15
234

问题描述

有没有一种方法可以在不使用触发器的情况下存储计算的数据?使用一些输入数据,将进行计算,并且一个变量将存储输出数据。当输入数据被修改时,变量将具有另一个计算数据。有什么方法可以同时获取两个输入的数据?

专家解答

如果您的问题是 “当我更新另一列时,如何更改一列中的值?” 那么答案很简单:

使用虚拟列!

这些 “存储” 一个计算。它的值是在运行时确定的。因此,当您更改列时,它取决于您将看到更改:

create table t (
  x int,
  y as (x + 1)
);

insert into t (x) values (1);
select * from t;

X   Y   
  1   2 

update t set x = 9;

select * from t;

X   Y    
  9   10
复制


我在这个视频中进一步讨论这些:



或者你可以在这里读到它们:

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

评论