我想建立一个像表结构的序列号
如下:
序列号码      状态      柜       行     列
 000001      未使用      1       1       1
 000002       使用       1       1       2 
 000003      未使用      1       1       3 
 000004       使用       1       1       4 
    。         。        。      。      。
    。         。        。      。      。
    。         。        。      。      。每次使用时遍历整个序列查找出最小的未使用的序列号码,根据这个号码把他的柜、行、列取出来,
然后后把这个序列号码的状态更新成使用。请高手指点!

解决方案 »

  1.   

    SELECT * FROM test WHERE 序列号码 = (SELECT MIN(序列号码) FROM test WHERE 状态 = '未使用') for update;
    update test set 状态 = '使用' where 序列号码=上面选出的号码;
    commit;
      

  2.   


    update test
       set 状态 = '使用' 
     where 序列号码=(select min(序列号码) 
                      from test 
                     WHERE 状态 = '未使用'
                   )
    returning 柜,行,列 into 变量1,变量2,变量3