太抽象了,若表中的只有ID,指向其他表中的记录(实际的值),此时的约束怎么写呢? 约束中能包含SQL吗? 该怎么解决这样的问题?写过的给个实例看看,

解决方案 »

  1.   

    一般完整性是用外键来实现constraint fk_name foreign key (id) references ref_table_name
      

  2.   

    OK
    理论上用FOREIGN KEY 和PRIMARY KEY,及CONSTRAINTS CHECK来实现我清楚.现在具体点
    我有个表,有几个字段(X,Y,Z),这里X,Y,Z只是ID,具体的值从另外的表中获得者,要满足的约束是
    ax+by+cz=d
    约束怎么写?
      

  3.   

    好像只有通过trigger来完成了。
      

  4.   

    create or replace trigger test
    before insert or update of (x,y,z) on yourtable 
    for each row
    declare
     d number;
    begin
      select field into d from another_table;
      if a*:new.x+ b*:new.y+c*new.z <> d then
         RAISE_APPLICATION_ERROR(-20011,'.....');
      end if;
    end;

    你的应用程序可以捕获20011这个错误码、
      

  5.   

    几种实现数据库数据完整性的方法:1、CONSTRAINTS
    2、TRIGGERS
    3、APPLiCATION CODE具体用法你看一下书吧
      

  6.   

    constraint ck check (ax+by+cz=d)