como hacer un autoincremento en postgres

769 views
Skip to first unread message

miko

unread,
Jun 7, 2012, 9:55:31 AM6/7/12
to Comunidad de Visual Foxpro en Español
con mysql hacia
SQLEXEC(conec,'select ifnull(MAX(id),0)+1 as nvo from tabla')
y me devolvia el numero aumentado que usaba para el siguiente registro

Moises Daniel Vilchez Tello

unread,
Jun 7, 2012, 9:57:36 AM6/7/12
to publice...@googlegroups.com
define de tipo serial

--
Moises Daniel Vilchez Tello
Chiclayo - Lambayeque - Peru

Javier Brumatti

unread,
Jun 7, 2012, 9:58:11 AM6/7/12
to publice...@googlegroups.com
curso acelerado de postgres.. si saludos ni nda... directo al grano..

SQLEXEC(conec,'select coalesce(MAX(id),0)+1 as nvo from tabla')
igual puedes usar campos autoincrementales en este acso definis el campo como serial.. son mas seguros..

--
Este mensaje ha sido analizado en busca
de virus y otros contenidos peligrosos,
y se considera que está limpio.

Alan Cybar

unread,
Jun 7, 2012, 10:01:24 AM6/7/12
to publice...@googlegroups.com
Puedes usar esta sintaxis para obtener el valor máximo de un campo:

SQLEXEC(conec,'select MAX(id)+1 as nvo from tabla')

Saludos,

Alan

Luis Zayas

unread,
Jun 7, 2012, 10:02:41 AM6/7/12
to publice...@googlegroups.com
gracias amigo por sus constantes respuestas

Maggi Fretes

unread,
Jun 7, 2012, 10:03:43 AM6/7/12
to publice...@googlegroups.com
Hola Miko. 

Si queres que incremente automáticamente un registro para evitar duplicaciones de códigos, utiliza el SERIAL de postgres y cuando hagas un inserte en tu tabla hace un RETURNING de tu código que te devolverá el nro asignado al código.

Ejemplo:

sqlexec(conec,'insert into tabla(nombre,hora) values(?variablenom,?variablefec)returning codigo','cursorcodigo')
select cursorcodigo
variablecod = codigo

select cursorcodigo
use

Saludos Magda


> Date: Thu, 7 Jun 2012 06:55:31 -0700
> Subject: [vfp] como hacer un autoincremento en postgres
> From: zaya...@gmail.com
> To: publice...@googlegroups.com

Luis Zayas

unread,
Jun 7, 2012, 10:10:23 AM6/7/12
to publice...@googlegroups.com
si hago asi me devuelve .NULL.
EL
 SQLEXEC(conec,'select MAX(ID)+1 as nvo from TABLA','cod')

Luis Zayas

unread,
Jun 7, 2012, 10:11:34 AM6/7/12
to publice...@googlegroups.com

carlos SALCEDO

unread,
Jun 7, 2012, 10:16:06 AM6/7/12
to visual fox
Pero si quieres que sea auto numerico dejalo que cuente el mismo
de lo contrario no es autonumerico

create un campo serial y guardate con una funcion el automaticamente
creara los consecutivos


Saludos
Carlos


Date: Thu, 7 Jun 2012 10:11:34 -0400
Subject: Re: [vfp] como hacer un autoincremento en postgres

Alan Cybar

unread,
Jun 7, 2012, 10:31:23 AM6/7/12
to publice...@googlegroups.com
Eso es porque tu campo id tiene valores nulos, cosa que no debería de ser, entonces debes usar la sintaxis que paso el compañero javier Brumatti más arriba.

Saludoss,

Alan

El 7 de junio de 2012 10:10, Luis Zayas <zaya...@gmail.com> escribió:

Javier Brumatti

unread,
Jun 7, 2012, 10:31:04 AM6/7/12
to publice...@googlegroups.com
para eso está la funcion coalesce..

SQLEXEC(conec,'select coalesce(MAX(id),0)+1 as nvo from tabla')

igual que mis compañeros.. usá seriales.. 
--
Este mensaje ha sido analizado en busca
de virus y otros contenidos peligrosos,
y se considera que está limpio.

Luis Zayas

unread,
Jun 7, 2012, 10:33:41 AM6/7/12
to publice...@googlegroups.com
gracias AMIGOS!!!!!
Reply all
Reply to author
Forward
0 new messages