我正在运行ORACLE。我遇到了问题。任何人都可以告诉我,如何在创建过程中将 DEFAULT 约束的值设置为同一个表中的列值?例如:
CREATE table testing
(
id varchar2(20),
name varchar2(20),
myvalue varchar2(30) default id + name
)
在上表中,如何将 myvalue 的默认约束值设置为 id 和的连接值名字 ??也就是说,我希望 myvalue 字段的值为创建表时id和名称字段的值或使用CREATE表仅命令。怎么办呢?
请帮帮我。 谢谢。
答案 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;