首页 > 解决方案 > Oracle:列默认值作为同一表中的另一列

问题描述

我正在使用oracle 11g。

我创建了表 test_date

CREATE TABLE test_date (str_date DATE, rtn_date AS (str_date+90));

我插入了 str_date 的值

INSERT INTO test_date(str_date) VALUES(SYSDATE);

现在看来

SQL> SELECT * FROM test_date;
STR_DATE  RTN_DATE
--------- ---------
08-MAY-21 06-AUG-21

我想更新 rtn_date 的值,但出现错误,例如,

SQL> UPDATE test_date SET rtn_date='01-APR-2021';

第 1 行出现错误:ORA-54017:虚拟列上不允许更新操作

如果 rtn_date 有什么方法可以更新值?

谢谢!!

标签: oracle11gsql-update

解决方案


推荐阅读