to bzszp():
触发器怎么用呀?能详细一点吗。

解决方案 »

  1.   

    当删除一行时,为了使index_no字段的值更新(index_no > 该行值的都减1),下面是我建的触发器。请指正。
     create or replace trigger temp_trigger
    after delete
    on tab_name
    for each row
    begin
         update tab_name 
         set index_no=index_no-1 
         where index_no > old.index_no 
    end;例如:
    1   
    2   
    3   
    4   
    删除第2行后变成
    1   
    2   
    3   
      

  2.   

    使某个栏位自动增加的需要可以理解,但是为什么要自动删除呢?
    一个Key栏位(比如serial column)的目的主要是为了标示唯一的一行记录。
    所以我理解你需要自动减少的目的是为了界面上的显示,如果是这样的话,我想程序完全可以做到,而且会很实时。
    你上面的解决方案会耗费数据库大量的资源。假设你的table里有1,000,000笔记录的话,会因为你的这个after delete触发器而性能降低,请三思。