Re: MSSQL to PostgreSQL - Problema intentando generar ID de modo YYYYMMDD0000000X

From: Ignacio Balcarce <ignacio(dot)balcarce(at)vivatia(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Mariano Reingart <reingart(at)gmail(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: MSSQL to PostgreSQL - Problema intentando generar ID de modo YYYYMMDD0000000X
Date: 2010-04-06 23:32:33
Message-ID: 247524E4-3A90-4BDA-86FB-5C73403D5BAB@vivatia.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Como podría optimizar y mejorar esta función?

Soy nuevo en postgre y realmente me esta costando esto, por donde
puedo ver?

Que cambios les harías y porque crees q tengo el error y como lo
corregirías?

Ignacio

El Apr 6, 2010, a las 18:27, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
escribió:

> Ignacio Balcarce escribió:
>
>> BEGIN
>> IF (SELECT max(seq_id) FROM thuban_seq
>> WHERE seq_id LIKE (to_char(now() + '1
>> day'::interval,
>> 'YYYYMMDD') || '%')) IS NOT NULL
>>
>> THEN
>> SELECT max(seq_id) INTO
>> item_id
>> FROM thuban_seq
>> WHERE seq_id LIKE
>> (to_char(now() + '1 day'::interval, 'YYYYMMDD') || '%');
>>
>> id := substr(item_id,
>> 9,
>> length(item_id)-9)::INT8;
>>
>> ELSE
>> id:= 00000000;
>> END IF;
>>
>> INSERT INTO thuban_seq(seq_id) VALUES (to_char(now(),'YYYYMMDD') ||
>> (id+1)) RETURNING seq_id INTO item_id;
>
>
> Espero que tengas algún lock externamente a la ejecución de esta
> función, porque así como está es sujeto de condiciones de carrera.
>
> --
> Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
> "I'm always right, but sometimes I'm more right than other times."
> (Linus Torvalds)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ignacio Balcarce 2010-04-07 01:32:15 Re: MSSQL to PostgreSQL - Problema intentando generar ID de modo YYYYMMDD0000000X
Previous Message Mariano Reingart 2010-04-06 23:17:02 Re: MSSQL to PostgreSQL - Problema intentando generar ID de modo YYYYMMDD0000000X