用SYS_GUID怎么实现在每个数据库表中insert一条记录时,主键自动设置。

解决方案 »

  1.   

    使用sys_guid,如果要自动处理,需要插入的表上建立一个触发器
    1、建表:
    create table test(id varchar2(50) primary key,name varchar2(100));
    2、建立触发器
    CREATE OR REPLACE TRIGGER tr_bi_tab
      BEFORE INSERT ON tab
      FOR EACH ROW
    DECLARE
      -- local variables here
    BEGIN
      :new.id :=sys_guid();
    END tr_bi_tab;
    4、插入数据
    insert into tab(name) values('test');
    commit;使用序列
    1、建表:
    create table test(id number primary key,name varchar2(100));
    2、建立序列
    create sequence seqtest start with 1 increment by 1;
    3、建立触发器
    CREATE OR REPLACE TRIGGER tr_bi_tab
      BEFORE INSERT ON tab
      FOR EACH ROW
    DECLARE
      -- local variables here
    BEGIN
      SELECT seqtest.nextval INTO :new.id FROM dual;
    END tr_bi_tab;
    4、插入数据
    insert into tab(name) values('test');
    commit;