autoinc.example
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. DROP SEQUENCE next_id;
  2. DROP TABLE ids;
  3. CREATE SEQUENCE next_id START -2 MINVALUE -2;
  4. CREATE TABLE ids (
  5. id int4,
  6. idesc text
  7. );
  8. CREATE TRIGGER ids_nextid 
  9. BEFORE INSERT OR UPDATE ON ids
  10. FOR EACH ROW 
  11. EXECUTE PROCEDURE autoinc (id, next_id);
  12. INSERT INTO ids VALUES (0, 'first (-2 ?)');
  13. INSERT INTO ids VALUES (null, 'second (-1 ?)');
  14. INSERT INTO ids(idesc) VALUES ('third (1 ?!)');
  15. SELECT * FROM ids;
  16. UPDATE ids SET id = null, idesc = 'first: -2 --> 2' 
  17. WHERE idesc = 'first (-2 ?)';
  18. UPDATE ids SET id = 0, idesc = 'second: -1 --> 3' 
  19. WHERE id = -1;
  20. UPDATE ids SET id = 4, idesc = 'third: 1 --> 4' 
  21. WHERE id = 1;
  22. SELECT * FROM ids;
  23. SELECT 'Wasn''t it 4 ?' as nextval, nextval ('next_id') as value;
  24. insert into ids (idesc) select textcat (idesc, '. Copy.') from ids;
  25. SELECT * FROM ids;