From: | Jorge Maturana Ortiz <ateo(at)labsd(dot)inf(dot)utfsm(dot)cl> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | correlative insertion |
Date: | 1998-10-13 22:18:30 |
Message-ID: | 3623D1B6.A3ECF2AA@labsd.inf.utfsm.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)labsd(dot)inf(dot)utfsm(dot)cl
From | Date | Subject | |
---|---|---|---|
Next Message | Eric McKeown | 1998-10-14 02:24:42 | dilemma |
Previous Message | Roberto Joao Lopes Garcia | 1998-10-13 17:00:51 | Re: [SQL] french caracters in Postgresql database ? |