每个值的循环序列

时间:2011-12-05 13:23:06

标签: sql oracle plsql sequences

我有这样的表:

           Table "test_seq"
 ------------------------------------------------
   Column   |          Type          | Modifiers
 ------------------------------------------------ 
 account_id | integer                | not null
 code       | integer                | not null
 data       | character varying(255) | 

 Indexes:
  "test_seq_pkey" PRIMARY KEY, btree (account_id, code)

任务:每个'account_id'可以包含1到3范围的'代码'。如果下一个account_id代码为4,则第1行中的数据将重写,序列将以1开始循环。

示例:

account_id  code       data
    1         1       'data 1'
    1         2       'data 2'
    1         3       'data 3'
    1         1       'data 4'  # first row destroyed

我能用DB仪器解决这个任务吗?

1 个答案:

答案 0 :(得分:1)

虽然我不明白这个的目的,但您可以使用触发器和存储过程来实现此目的。将调用存储过程而不是直接插入(您可以删除直接插入的权限)。