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

Salvador Salazar (st-psi) ssalazar@campus.iztacala.unam.mx
Thu, 6 Jun 2002 18:05:23 -0500 (CDT)


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@iztacala.unam.mx

On Thu, 6 Jun 2002, [iso-8859-1] Sebastián Villalba wrote:

> 	Perdón por la pregunta quizás por demás básica. En una funci=
ón 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 después e=
n
> 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
> función) para calcular los próximos valores de id_usuario e id_socio =
y
> ponerlos al hacer el insert. Perdón por lo extenso, perdón por si no =
me
> supe explicar con claridad, y muchísimas gracias por el tiempo que me
> brindaron leyendo éste mail. Saludos...
>
> Sebastián Villalba
>
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
>