1

我正在运行 ORACLE。我遇到了一个问题。谁能告诉我,如何在创建过程中将DEFAULT约束的值设置为同一表中的列值?例如:

CREATE table testing
(
 id varchar2(20),
 name varchar2(20),
 myvalue varchar2(30) default id + name
)

在上表中,如何将myvalue的默认约束值设置为idname的串联值?也就是说,我希望myvalue字段的值是创建表时的id 和 name 字段的值,或者只使用 CREATE table 命令。怎么做到呢?

请帮帮我。谢谢你。

4

1 回答 1

4

您可以尝试将表格修改为:

ALTER TABLE testing
MODIFY (myvalue VARCHAR2(40) GENERATED ALWAYS AS (id || ' ' || name) VIRTUAL);

或者您可以尝试像这样创建触发器:

CREATE OR REPLACE TRIGGER     myTrigger
BEFORE     INSERT OR UPDATE
ON     testing
FOR EACH ROW
BEGIN
     :NEW.myvalue:= :NEW.id
                || ' '
                || :NEW.name;
END;
于 2016-04-28T07:33:05.443 回答