[Pgsql-ayuda] Como saco el valor de un serial despues de una
=?ISO-8859-1?Q?inserci=F3n?= de manera eficiente
Felipe E. Barousse B.
fbarousse@piensa.com
01 Mar 2002 15:02:25 -0600
Hola Fernando:
Es muy f=E1cil:
Suponiendo que tengas la tabla:
id_dato integer not null default nextval('tabla_id_dato_seq'::text)
datos text
(El serial es el id_dato y por supuesto tiene su indice
"tabla_id_dato_pkey")
La secuencia de "seriales" se guarda en tabla_id_dato_seq y puedes
obtener el valor que se acaba de generar despues de un insert con:
select last_value from tabla_id_datos_seq;
La otra forma de usarlo es usando la funcion de Postgres "currval()"
JUSTO DESPUES del INSERT, (ejemplo tomado del manual):
INSERT INTO person (name) VALUES ('Blaise Pascal');
new_id =3D output of "SELECT currval('person_id_seq')";
Dato adicional: si modificas la secuencia (un DROP SEQUENCE y luego
CREATE SECUENCE...) puedes lograr alterar los "seriales".
Espero se entienda con mi ejemplo de "table" y "id_dato"
Un saludo
Felipe Barousse
Bufete Consultor de Mexico - Piensa Technologies.
www.piensa.com
On Fri, 2002-03-01 at 02:27, Fernando Romo wrote:
> Estimados:
>=20
> Necesito insertar un registro en una tabla que tiene un tipo de campo
> serial y sacar inmediatamente el valor del registro que se acaba de
> actualizar.
>=20
> Por ejemplo en MS SQL uno usa una variable llamada @@IDENTITY que trae
> el valor de este campo despues de un INSERT.
>=20
> En pgsql hay algo similar?
>=20
> Saludos... El Pop
>=20
>=20
>=20
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda