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
>
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 |