如何在创建表时将默认约束的值作为列值插入?

时间:2016-04-28 07:28:02

标签: sql oracle constraints create-table default-constraint

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

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

在上表中,如何将 myvalue 的默认约束值设置为 id 的连接值名字 ??也就是说,我希望 myvalue 字段的值为创建表时id和名称字段的值使用CREATE表仅命令。怎么办呢?

请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:4)

您可以尝试将表修改为:

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

或者您可以尝试创建这样的TRIGGER:

CREATE OR REPLACE TRIGGER     myTrigger
BEFORE     INSERT OR UPDATE
ON     testing
FOR EACH ROW
BEGIN
     :NEW.myvalue:= :NEW.id
                || ' '
                || :NEW.name;
END;