用触发器来实现吧,判断FD_name2的值,如果是空的话就等于FD_name的值.如果不是空的话就用FD_name2的值.

解决方案 »

  1.   

    这不符合第三范式,同一个表中非主键字段不应该依赖另一个非主键字段的,把FD_name2放在一个新的表中,>>>希望,FD_name2默认为FD_name的值,但是FD_name2的值可以修改为不等于FD_name的值,怎样实现?通过应用程序来控制这种关系
      

  2.   

    我只想创建一个触发器,当插入数据时如果,FD_name2为空则设置FD_name2的值为FD_name的值
      

  3.   

    TO:zlst
    既然你提到第三范式,我想借楼主质地和你讨论一下。我个人觉得做项目没必要非要遵循第三范式,有时候为了提高性能,就要舍弃第三范式,只要遵循第二范式就够了。
    TO:搂主
    我想写触发器是个比较好的选择吧,最起码我们想到什么更好的
      

  4.   

    我想也是,但是不会写,老大们给个sql语句代码好不好
      

  5.   

    CREATE OR REPLACE TRIGGER "schema"."trigername" AFTER INSERT  OF "FD_Name2"  ON "schema"."trigername" 
              REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
    BEGIN
    IF (:OLD.FD_Name2 IS NULL) THEN
      UPDATE schema.trigername
       SET FD_Name2=NEW.FD_Name
    ;
    END IF ;
    EXCEPTION
      WHEN OTHERS THEN NULL;
    END;
      

  6.   

    CREATE OR REPLACE TRIGGER "schema"."trigername" AFTER INSERT  OF "FD_Name2"  ON "schema"."trigername" 
              REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
    BEGIN
    IF (:OLD.FD_Name2 IS NULL) THEN
      UPDATE schema.trigername
       SET FD_Name2=NEW.FD_Name
      WHERE FD_Name=NEW.FD_Name
    ;
    END IF ;
    EXCEPTION
      WHEN OTHERS THEN NULL;
    END;