问题标签 [virtual-column]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

sql - Oracle 虚拟列在一个实例上生成 -1.0002... 而不是 -1

在 11G 的一个环境中,我创建了一个包含一个虚拟列的表,如下所示

然后在其中插入一行

当我从此表中选择数据时

我得到以下输出

COL3不显示-1

关于这个的任何想法,如何获得-1输出COL3

它在 Oracle 11g 上的另一个环境中完美运行。

0 投票
1 回答
996 浏览

sql - 在 where 子句中使用函数生成的列

我有一个 SQL 查询,它调用一个存储的 SQL 函数,我想这样做:

选择工作正常,但是,它不知道“当前”。即使(没有 WHERE)它生成的数据确实有“当前”列,而且它是正确的。

所以,我假设这是一个符号问题。

0 投票
1 回答
215 浏览

mysql - MySQL 根据 WHERE 子句更改虚拟列

是否可以根据 where 子句更改虚拟列值?

我有这张桌子:

我想看看在给定站点和给定时间范围内有多少台计算机,我目前使用的查询是:

但是,目前我必须运行此查询数百次才能创建一个图表,该图表显示一段时间内有多少台计算机。

有没有可能做这样的事情:

0 投票
2 回答
1309 浏览

oracle - 使用确定性用户定义函数的虚拟列

我正在使用具有确定性用户定义函数的虚拟列(oracle 11g),该函数将行的主键作为参数并返回一个简单的标量值。虚拟列更新没有任何问题,但是当我更新表时,它会抛出错误:- ora-00054 资源繁忙并在指定 nowait 的情况下获取或在 oracle 中超时。我的表结构和功能如下:-

如何克服这个错误?

0 投票
1 回答
2014 浏览

mysql - MySQL SELECT 返回错误结果

我正在使用 MySQL 5.7。我创建了一个带有 DATETIME 类型的虚拟列(未存储)的表,上面有一个索引。当我在处理它时,我注意到 order by 并没有返回所有数据(我期望在顶部的一些数据丢失了)。MAX 和 MIN 的结果也是错误的。我跑之后

那么结果是正确的。我猜索引数据有问题,所以我有几个问题:

  1. 何时以及为什么会发生这种情况?
  2. 有没有办法防止这种情况?
  3. 在我运行的 3 个命令中,哪个是正确的?

我担心将来会发生这种情况,但我不会注意到。

编辑

按照评论中的要求,我添加了表定义:

返回错误结果的查询:

谢谢

0 投票
1 回答
76 浏览

mysql - 错误代码:3175。无法在其基列具有外部约束的虚拟列上创建索引

在 MySQL 5.7.11 中,添加其中一个列是虚拟生成列的复合索引会导致以下错误:

错误代码:3175。无法在其基列具有外部约束的虚拟列上创建索引

实际上,生成虚拟列的基列没有任何外部约束,因此错误消息是莫名其妙的。

MySQL 5.7.15 中不会出现该错误。

0 投票
1 回答
466 浏览

oracle - Oracle触发器依赖于虚拟列产生错误数据

我有这个触发器

它计算sales_detail.total_price并更新sales_master.value.

问题是该total_price列是一个虚拟列,定义为数量和单位价格的乘积。当我输入新的详细信息行时,触发器似乎没有捕捉到新的计算值,即使它是一个after. 我的问题是:虚拟列表达式的执行与触发器的运行是否冲突?请注意,当我再次将其设置total_price为普通列时,它返回了正确的值。

我正在使用 Oracle 12c

0 投票
1 回答
747 浏览

mysql - Using UNIX_TIMESTAMP in a virtual (calculate) column in MariaDB / MySql

I am trying to create a table with a timestamp column and a virtual (calculated) column that holds a helper key for grouping the rows with timestamps of the same hour. For that I am using the following command in MariaDB / MySql:

Which returns the following error:

According to the documentation i don't see a reason this should not work. Any ideas?

0 投票
1 回答
857 浏览

sql - 使用 Oracle 虚拟列来增加值

这是尝试使用增加列中值的函数来测试 VIRTUAL 列的使用。

我正在使用一个函数,该函数将返回当前年份的最后两位数字,并用连字符连接,后跟表列中定义为虚拟列的下一个最大值。

当我将记录插入表中时,它确实插入成功。但是,当我查询记录时,出现以下错误

ORA-00036: 超出最大递归 SQL 级别数 (50)

我的问题是,是否有可能实现增加值(使用 VIRTUAL 列的自定义增量或者这种尝试是微不足道的?

下面的函数首先通过取消注释部分来编译,在创建表时,第一个 SQL 块被注释,我使用第二个 SQL 块

功能

表结构

插入语句

我尝试使用以下 SQL 使用序列,但是,每次我从表中执行 SQL 语句时,都会插入序列值

0 投票
0 回答
31 浏览

oracle - 当虚拟自动生成列在同一位置上创建时,删除记录挂起

我有一个T1带有虚拟列 V1 的表,它是根据某些条件自动生成的,并且还使用 Column C1of table创建了一个外键T2

现在,当表T1被锁定并且我尝试从表中删除记录时,T2它不工作并且会话无限期地等待锁定获取,即使 T1 中没有可用的参考数据。

即使我尝试将 FK 设为ON DELETE CASCADE,而不是运气。

请帮忙。

仅当我完全删除 FK 时才有帮助,但我们需要他们验证数据以防找到任何匹配项。