现系统有这么个需要,希望新增一列.这一列的值是记录插入的时候自动填入数据库的时间!可以不可以有列的变量属性实现这样的功能,而不用写储存过程来实现呢?先各位大侠帮帮忙,比较急!

解决方案 »

  1.   

    变量属性,什么意思?
    要插入当前系统时间,插入的时候用sysdate
    如果想自动插入,创建一个触发器实现
      

  2.   

    可是使用列的 default 属性,示例如下:
    SQL> create table mytest
      2  (id number,
      3  dt date default sysdate);表已创建。SQL> insert into mytest values(1);
    insert into mytest values(1)
                *
    ERROR 位于第 1 行:
    ORA-00947: 没有足够的值
    SQL> insert into mytest(id) values(1);已创建 1 行。SQL> select * from mytest;        ID DT
    ---------- ----------
             1 21-9月 -09
      

  3.   

    --增加一列
    alter table add datecol date;
    --触发器--
    create or replace tri_adddate
    after insert on table
    for each row
    begin
       if inserting then
         update table set datecol=sysdate where id= :new.id;
       end if
    end;
      

  4.   


    --如一楼所说的:增加一个default属性就可以了!
    --还用触发器?触发你个鸡把毛是吧?你怕你的系统快了?
      

  5.   

       谢谢大家,我希望的就是2楼所说的default属性,但是时间的格式不对,能不能是这样的格式:20090917 17:00 ,因为我们系统要自动备份的,不知道exp的时候21-9月 -09这样的格式值能不能认?
      

  6.   

    SQL> create table mytest 
      2  (id number, 
      3  dt varchar2(20) default to_char(sysdate,'yyyymmdd hh24:mi')); 
      

  7.   


    你就按2楼的那样写吧,不用改了
    是date格式,你说的21-9月 -09只是显示的格式
    没有关系