1. 序列:sequence,实现功能,实现主键的自增长(sqlserver可直接设定),hibernate也做了实现
Create sequence create sequence SNIPER_TEST_SQS minvalue 1 maxvalue 999999999999 start with 1 increment by 1 cache 10;
在表中的应用
insert into sniper_test (id,name,degree,address) values (sniper_test_sqs.nextval,'张三','学士','山东'); commit;
2.触发器:trigger,用触发器的方式实现上边的内容
CREATE OR REPLACE TRIGGER SNIPER_TEST_TRIG BEFORE INSERT ON SNIPER_TEST FOR EACH ROW BEGIN SELECT SNIPER_TEST_SEQUENCE_1.NEXTVAL INTO :NEW.ID FROM DUAL; END;
3.存储过程:procedure
create or replace procedure PC_SNIPER_TEST is begin insert into sniper.sniper_test (id,name,degree,address) values ('','张三','学士','山东'); commit; end;
4.定时器Job, 创建job,每隔一分钟定时执行,每隔一份中执行时,时间会有延迟,一般要63秒左右才能定时执行一次,目前没有好的解决方法*
begin sys.dbms_job.submit(job => :job, what => 'PC_SNIPER_TEST;', next_date => to_date('13-08-2012 14:20:39', 'dd-mm-yyyy hh24:mi:ss'), interval => 'SYSDATE+1/(24*60)'); commit; end; /