Re: [Pgsql-ayuda] Fución para insertar en 2 tablas simultaneamente

From: "Salvador Salazar (st-psi)" <ssalazar(at)campus(dot)iztacala(dot)unam(dot)mx>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Fución para insertar en 2 tablas simultaneamente
Date: 2002-06-06 23:05:23
Message-ID: Pine.BSO.4.44.0206061745040.17535-100000@campus.iztacala.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Por lo que yo entiendo, tu lo que quieres es saber como obtener el numero
consecutivo de la llave primaria de tu tabla ?cierto?. Si es asi,
recomiendo lo siguiente:

Una vez que te hayas conectado a la base de datos haces una consulta como
muestro a continuacion:

$query="select max(persona_clave) as clave from persona";
//Selecciona el maximo valor del atributo "persona_clave" de la
tabla "persona" y lo regresa como la variable "clave"

print "$query <br>";
//Para visualizar cual fue tu consulta solamente

$respuesta=sybase_query($query,$conexion);
//En la variable $respuesta se guarda la consulta

$datos=sybase_fetch_object($respuesta);
//Asignamos a la variable $datos el valor devuelto

$clave=$datos->clave;
//A la variable $clave le asignamos el valor de la consulta
//que en este caso es el maximo valor de tu llave primaria
//Por ejemplo $clave = 23

$clave=$clave +1;
//Al valor de la variable $clave le asignamos su valor mas uno
//Del valor del ejemplo anterior sera:
// $clave = 23 +1 <= Ahora $clave es igual a 24

De esta manera tendras el siguiente valor de tu llave primaria. Deberas
hacer esto por cada llave primaria. Para insetar el valor tendras que
hacer ahora esto:

$query="insert into Persona values ($clave, $valor_a,
$valor_b,...,$valor_n)";
//Donde $clave vale 24. Queda claro?

Salvador --
ssalazar(at)iztacala(dot)unam(dot)mx

On Thu, 6 Jun 2002, [iso-8859-1] Sebastin Villalba wrote:

> Perdn por la pregunta quizs por dems bsica. En una funcin en sql y
> almacenada, yo necesito hacer lo siguiente: Una tabla "usuarios" con
> clave primaria id_usuario (int2)(nombre_usuario, login y password), otra
> tabla "socios", clave primaria id_socio (int4) y un campo
> id_usuario(int2)(domicilio, telefono, etc. etc. etc.). Entonces yo
> necesito dar de alta un nuevo socio, para eso, primero tengo que agregar
> en 1 al id_usuario en "usuarios", poner el login y passord, y despus en
> la tabla "socios" agregar en 1 el id_socio (que es diferente al
> id_usuario porque no todos los usuarios son socios), poner el id_usuario
> que figura en la tabla "usuarios" y llenar el resto de los campos de la
> tabla "socios".
>
> Desde php, yo en el "pg_exec ($conexion, select agregosocio(...));" le
> mando todos los datos. Pero no s como hacer en sql (dentro de la
> funcin) para calcular los prximos valores de id_usuario e id_socio y
> ponerlos al hacer el insert. Perdn por lo extenso, perdn por si no me
> supe explicar con claridad, y muchsimas gracias por el tiempo que me
> brindaron leyendo ste mail. Saludos...
>
> Sebastin Villalba
>
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Roberto Andrade Fonseca 2002-06-07 03:56:25 Re: [Pgsql-ayuda] Fución para insertar en 2 tablas simultaneamente
Previous Message Sebastián Villalba 2002-06-06 15:49:38 [Pgsql-ayuda] Fución para insertar en 2 tablas simultaneamente