gpt4 book ai didi

sql - 甲骨文 : Default column value based on a filter

转载 作者:行者123 更新时间:2023-12-03 17:48:26 25 4
gpt4 key购买 nike

嗨,开发人员要求在表上添加一列,该列的默认值为“N”,但是,如果条目的 id = 3,则该列的默认值应为“Y”,无论如何我都可以实现这在oracle?

最佳答案

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>

所以, DECODE VIRTUAL 中的函数列声明处理您的要求。

10g 方法

您可以使用 -
  • DEFAULT值(value)
  • AFTER INSERT TRIGGER每当 id = 3

  • 创建表以具有 DEFAULT值为“N”。仅当插入带有 id 中的值的新行时才触发触发器column = 3,这样触发器将值更新为“Y”。否则对于所有其他情况,默认值将是“N”。

    关于sql - 甲骨文 : Default column value based on a filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700584/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com