correlative insertion

Поиск
Список
Период
Сортировка
От Jorge Maturana Ortiz
Тема correlative insertion
Дата
Msg-id 3623D1B6.A3ECF2AA@labsd.inf.utfsm.cl
обсуждение исходный текст
Ответы Re: [SQL] correlative insertion  (Herouth Maoz <herouth@oumail.openu.ac.il>)
Список pgsql-sql
Hi,

I have a table 'mas' with the following composition:

Table    = mas
+----------------------------------+----------------------------------+-------+
|              Field               |              Type                | Length|
+----------------------------------+----------------------------------+-------+
| cha                              | char                             |     1 |
| num                              | int4                             |     4 |
+----------------------------------+----------------------------------+-------+

and this data:

  cha|num
---+---
    a  |  1
    a  |  2

I want to create a function that automatically increments the number stored in 'num' when i insert a new tuple if it contain a 'known' cha, for example, if i insert another 'a' in the field 'cha',  the num must be 3.

I try:

create function otro(char) returns int4 as 'select 1 + max(num) from mas where cha = $1;' language 'sql';

it works OK if i make the following:

insert into mas values ('a',otro('a'));

i obtain:

  cha|num
---+---
    a  |  1
    a  |  2
    a  |  3
 

THE PROBLEM is that when i try to insert a tuple with an unknow cha, this function don't work. I want make an insert like:

insert into mas values ('b',otro('b'));

and obtain:

  cha|num
---+---
    a  |  1
    a  |  2
    a  |  3
    b  |  1

I would thank any help.
 

-- 
Jorge Maturana Ortiz
Laboratorio de Sistemas Distribuidos - Departamento de Informatica
Universidad Tecnica Federico Santa Maria, Valparaiso - Chile
mailto:ateo@labsd.inf.utfsm.cl
 

В списке pgsql-sql по дате отправления:

Предыдущее
От: Roberto Joao Lopes Garcia
Дата:
Сообщение: Re: [SQL] french caracters in Postgresql database ?
Следующее
От: Eric McKeown
Дата:
Сообщение: dilemma