本人是初学者
oracle,一张表,有一个字段比如产品库存(pkucun),另外一个字段产品数量(pnum),
当插入一条记录时,
insert into test (pnum,pname)valuse(20,'pp'),
字段pkucun通过字段pnum计算而自动实现的,
求助高人指点,这个sql语句该怎么写,急件!

解决方案 »

  1.   

    写触发器自动UPDATE就可以了吧不知道LZ具体应用怎样
      

  2.   


    drop table book;   
    --创建表      
    create table book(       
       bookId varchar2(4) primary key,   
       name varchar2(20)         
    );   
    --创建序列      
    create sequence book_seq start with 1 increment by 1;    
      
    --创建触发器      
    create or replace trigger book_trigger       
    before insert on book       
    for each row       
    begin       
    select book_seq.nextval into :new.bookId from dual;      
    end ;   
    --添加数据      
    insert into book(name)  values ('cc');    
    insert into book(name)  values ('dd');   
      
    commit;
    不懂的话,请点击这里
      

  3.   

    你这个要求,完全可以用11g的新特性 虚拟列把pkucun 设置为虚拟列。
    CREATE TABLE test
    (
      pnum     NUMBER, 
      pname   varchar2(10), 
      pkucun  GENERATED ALWAYS AS ( pnum + 100 ) VIRTUAL
    );insert into test (pnum,pname) values(20,'pp');
    commit;select * from test;