0

任何人都可以帮助我为自动递增 fld_id 和 Unix 日期时间创建触发器。我的表字段是 fld_id(int),fld_date(number),fld_value(varchar2)。

我的插入查询是

insert into table (fld_value)values('xxx');
insert into table (fld_value)values('yyy');

我需要这样的表格记录

fld_id    fld_date     fld_value
1         1354357476    xxx
2         1354357478    yyy

请帮我创建这个。我不能这样做..

4

1 回答 1

1

如果你想fld_id成为一个序列值,你需要创建一个序列和一个触发器

CREATE SEQUENCE sequence_name
  START WITH 1
  INCREMENT BY 1
  CACHE 20;

CREATE OR REPLACE TRIGGER trigger_name
  BEFORE INSERT ON table_name
  FOR EACH ROW
BEGIN
  SELECT sequence_name.nextval
    INTO :new.fld_id
    FROM dual;
  :new.fld_date := (SYSDATE - date '1970-01-01') * 60 * 60 * 24;
END;
于 2012-12-01T05:06:07.013 回答