2011-12-05 6 views
2

У меня есть такая таблица:Последовательность цикла для каждого значения

  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?

+0

@Dems, вставляя только –

+1

Я считаю, что вам нужно будет закодировать это в процедуре или с помощью логики приложения. –

ответ

1

Хотя я не понимаю цели этого, вы можете достичь этого, используя триггеры и хранимые процедуры. хранимая процедура будет вызываться вместо прямых вставок (вы можете удалить разрешения для прямых вставок).

+0

Я сделаю это с помощью логики приложения, это будет проще: –

Смежные вопросы