1、3是check约束
2不是约束吧,就是设置该列若没有赋值,默认为sysdate-1

解决方案 »

  1.   

    希望楼上的给点明确的指示呀学习ing。。接触oracle没都久。
      

  2.   


    -- 1、由于 check 约束中不能使用 sysdate 不确定函数,因此用触发器实现。
    create or replace trigger check_birthdate_employees_trg
    after insert or update of birthdate on employees
    for each row
    when (new.birthdate>=trunc(sysdate))
    begin
     raise_application_error(-20001,'Invalid Birthdate');
    end;
    /-- 2
    default (trunc(sysdate) - 1)-- 3
    check (Phone regexp_like '\(\d{3}\)\d{8}')
      

  3.   

    2.向雇员工资表wage和工资税表tax中添加关于以下列的DEFAULT约束:Putdate:昨天,Paydate:昨天??。。搞不懂为一个date类型怎么添加varchar类型的约束??
    ..这个还不知道3楼的怎么没写一下?讨教啦。。
      

  4.   

    是设置默认值吗? 
    Putdate date default (trunc(sysdate) - 1)Putdate char(10) default(to_char(sysdate,'yyyy-mm-dd'))
      

  5.   

    恩恩。。谢谢啦。。
    不过。。.。 向雇员表Employees中添加BirthDate列的约束:在BirthDate列中的值必须早于今天的日期??
    一定要用触发器吗??能不能用一条语句搞定的呢....
    麻烦了。。
      

  6.   

    应该是 regexp_like(phone, '\(\d{3}\)\d{8}')
      

  7.   

    可能不行,因为 sysdate (取今天的日期)是不确定性函数,不能用在 check 约束中。