From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | Gunnar Wolf <gwolf(at)gwolf(dot)org>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Roberto Rodríguez Pino <rodpin(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: como lograr campo consecutivo sin fallar ? |
Date: | 2008-07-24 02:40:16 |
Message-ID: | BLU137-W53BC5A6F3A3AEFCF68BE8BE3870@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*
> Date: Tue, 22 Jul 2008 00:32:39 -0500
> From: gwolf(at)gwolf(dot)org
> To: alvherre(at)alvh(dot)no-ip(dot)org
> CC: rodpin(at)gmail(dot)com; pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] como lograr campo consecutivo sin fallar ?
>
> Alvaro Herrera dijo [Thu, Jul 17, 2008 at 01:33:41PM -0400]:
>> Claro, pero para hacer una asignación numérica que "no falle" no puedes
>> usar una secuencia. Tienes que bloquear la tabla y hacer la inserción
>> del siguiente número disponible. Esto obviamente tiene menor
>> rendimiento (solo puede haber un proceso insertando a la vez), pero te
>> aseguras que no habrá agujeros en la numeración.
>>
>> Dado que la generación de facturas no es una cosa terriblemente
>> frecuente, el menor rendimiento no debería ser un problema. Cada
>> transacción debería tomar menos de un segundo de todas maneras. Un
>> usuario que tiene que esperar un segundo más, no se da ni cuenta de la
>> diferencia.
>
> Pero incluso siendo este el caso, yo no usaría al número de factura
> como la llave primaria. Generaría en todo caso algo como:
>
> CREATE TABLE factura (
> id SERIAL PRIMARY KEY,
> factura integer NOT NULL DEFAULT siguiente_factura(),
Esto se puede ?
Puedo poner como DEFAULT una funcion que he hecho>?
Wao!!
Eso si que no lo sabiaQ!!!
> otro_campo blah blah
> );
>
> Claro, poniendo la lógica en cuestión bajo siguiente_factura(), y
> creándole un bonito índice para el rendimiento. Sí, sé que el número
> de factura no _debe_ cambiar, pero... Bueno, todos los atributos que
> un humano pueda tocar son malas opciones para una llave primaria. Y no
> sé cómo sea en sus países, pero en México tú no puedes imprimir el
> número de factura - tiene que venir pre-impreso por un impresor
> autorizado. Eso sólo significa que el número de factura se tiene que
> capturar una vez teniendo el papelito impreso (o listo en la
> impresora).
>
> Saludos,
>
> --
> Gunnar Wolf - gwolf(at)gwolf(dot)org - (+52-55)5623-0154 / 1451-2244
> PGP key 1024D/8BB527AF 2001-10-23
> Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF
> --
> TIP 7: no olvides aumentar la configuración del "free space map"
_________________________________________________________________
Use video conversation to talk face-to-face with Windows Live Messenger.
http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL_Refresh_messenger_video_072008
From | Date | Subject | |
---|---|---|---|
Next Message | Julio Cesar Sánchez González | 2008-07-24 07:36:23 | Re: Concatenar cadena texto con booleano |
Previous Message | Edwin Quijada | 2008-07-24 02:35:41 | RE: Conexiones simultaneas |