问题标签 [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.
sql - Oracle 虚拟列在一个实例上生成 -1.0002... 而不是 -1
在 11G 的一个环境中,我创建了一个包含一个虚拟列的表,如下所示
然后在其中插入一行
当我从此表中选择数据时
我得到以下输出
COL3
不显示-1
关于这个的任何想法,如何获得-1
输出COL3
?
它在 Oracle 11g 上的另一个环境中完美运行。
sql - 在 where 子句中使用函数生成的列
我有一个 SQL 查询,它调用一个存储的 SQL 函数,我想这样做:
选择工作正常,但是,它不知道“当前”。即使(没有 WHERE)它生成的数据确实有“当前”列,而且它是正确的。
所以,我假设这是一个符号问题。
mysql - MySQL 根据 WHERE 子句更改虚拟列
是否可以根据 where 子句更改虚拟列值?
我有这张桌子:
我想看看在给定站点和给定时间范围内有多少台计算机,我目前使用的查询是:
但是,目前我必须运行此查询数百次才能创建一个图表,该图表显示一段时间内有多少台计算机。
有没有可能做这样的事情:
oracle - 使用确定性用户定义函数的虚拟列
我正在使用具有确定性用户定义函数的虚拟列(oracle 11g),该函数将行的主键作为参数并返回一个简单的标量值。虚拟列更新没有任何问题,但是当我更新表时,它会抛出错误:- ora-00054 资源繁忙并在指定 nowait 的情况下获取或在 oracle 中超时。我的表结构和功能如下:-
如何克服这个错误?
mysql - MySQL SELECT 返回错误结果
我正在使用 MySQL 5.7。我创建了一个带有 DATETIME 类型的虚拟列(未存储)的表,上面有一个索引。当我在处理它时,我注意到 order by 并没有返回所有数据(我期望在顶部的一些数据丢失了)。MAX 和 MIN 的结果也是错误的。我跑之后
那么结果是正确的。我猜索引数据有问题,所以我有几个问题:
- 何时以及为什么会发生这种情况?
- 有没有办法防止这种情况?
- 在我运行的 3 个命令中,哪个是正确的?
我担心将来会发生这种情况,但我不会注意到。
编辑:
按照评论中的要求,我添加了表定义:
返回错误结果的查询:
谢谢
mysql - 错误代码:3175。无法在其基列具有外部约束的虚拟列上创建索引
在 MySQL 5.7.11 中,添加其中一个列是虚拟生成列的复合索引会导致以下错误:
错误代码:3175。无法在其基列具有外部约束的虚拟列上创建索引
实际上,生成虚拟列的基列没有任何外部约束,因此错误消息是莫名其妙的。
MySQL 5.7.15 中不会出现该错误。
oracle - Oracle触发器依赖于虚拟列产生错误数据
我有这个触发器
它计算sales_detail.total_price
并更新sales_master.value
.
问题是该total_price
列是一个虚拟列,定义为数量和单位价格的乘积。当我输入新的详细信息行时,触发器似乎没有捕捉到新的计算值,即使它是一个after
. 我的问题是:虚拟列表达式的执行与触发器的运行是否冲突?请注意,当我再次将其设置total_price
为普通列时,它返回了正确的值。
我正在使用 Oracle 12c
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?
sql - 使用 Oracle 虚拟列来增加值
这是尝试使用增加列中值的函数来测试 VIRTUAL 列的使用。
我正在使用一个函数,该函数将返回当前年份的最后两位数字,并用连字符连接,后跟表列中定义为虚拟列的下一个最大值。
当我将记录插入表中时,它确实插入成功。但是,当我查询记录时,出现以下错误
ORA-00036: 超出最大递归 SQL 级别数 (50)
我的问题是,是否有可能实现增加值(使用 VIRTUAL 列的自定义增量或者这种尝试是微不足道的?
下面的函数首先通过取消注释部分来编译,在创建表时,第一个 SQL 块被注释,我使用第二个 SQL 块
功能
表结构
插入语句
我尝试使用以下 SQL 使用序列,但是,每次我从表中执行 SQL 语句时,都会插入序列值
oracle - 当虚拟自动生成列在同一位置上创建时,删除记录挂起
我有一个T1
带有虚拟列 V1 的表,它是根据某些条件自动生成的,并且还使用 Column C1
of table创建了一个外键T2
。
现在,当表T1
被锁定并且我尝试从表中删除记录时,T2
它不工作并且会话无限期地等待锁定获取,即使 T1 中没有可用的参考数据。
即使我尝试将 FK 设为ON DELETE CASCADE
,而不是运气。
请帮忙。
仅当我完全删除 FK 时才有帮助,但我们需要他们验证数据以防找到任何匹配项。