11g方法
从Oracle 11g上往下,您可以使用 一步完成此操作VIRTUAL columns。
测试用例
SQL> CREATE TABLE tab_default (
2 ID NUMBER,
3 flag varchar2(1) GENERATED ALWAYS AS (decode(id, 3, 'Y', 'N')) VIRTUAL
4 );
Table created.
SQL>
SQL> INSERT INTO tab_default (ID) VALUES (1);
1 row created.
SQL> INSERT INTO tab_default (ID) VALUES (3);
1 row created.
SQL> INSERT INTO tab_default (ID) VALUES (10);
1 row created.
SQL> SELECT * FROM tab_default;
ID F
---------- -
1 N
3 Y
10 N
SQL>
Run Code Online (Sandbox Code Playgroud)
因此,列声明DECODE中的函数VIRTUAL可以满足您的要求。
10克方法
您可以使用以下方式满足要求 -
DEFAULT价值AFTER INSERT TRIGGER每当 id = 3DEFAULT创建值为“N”的表。仅当插入列 = 3 中的值的新行时才触发触发器id,以便触发器将值更新为“Y”。否则,对于所有其他情况,默认值为“N”。
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |