将默认值设置为列值

时间:2014-09-15 15:36:00

标签: plsql oracle11gr1

我想将默认值设置为现有表的列, 例如:create table t(a Number(22), b NUMBER(22);

我想设置column B as column A的默认值。

我知道我们不能这样做,任何人都可以提出另一种方法。

2 个答案:

答案 0 :(得分:0)

为什么不直接在代码中设置默认值?

if(Obj.B == null)
Obj.B = Obj.A

我认为数据库的作用不是表达这种规则。

答案 1 :(得分:0)

您可以使用ON INSERT触发器:

CREATE OR REPLACE TRIGGER T_BI
  BEFORE INSERT ON T
  FOR EACH ROW
BEGIN
  IF :NEW.B IS NULL THEN
    :NEW.B := :NEW.A;
  END IF;
END T_BI;

分享并享受。