Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/08/2010, 12:59
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Stored Procedure con dos insertar

En general, hay formas más simples:
Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE PROCEDURE InsertarPersonas2(
  3.     in pPersonaNombre varchar(100),
  4.     in pPersonaApellido varchar(100),
  5.     in pPersonaTelefono varchar(50),
  6.     in pPersonaCelular varchar(50),
  7.     in pPersonaDireccion varchar(100),
  8.     in pPersonaMail varchar(100),
  9.     in pPersonaWeb varchar(100),
  10.     in pPersonaObservaciones varchar(1024),
  11.     in pPersonaAuxiliar1 varchar(1024))
  12.     INSERT INTO personas (
  13.         PersonaNombre ,
  14.         PersonaApellido ,
  15.         PersonaTelefono ,
  16.         PersonaCelular ,
  17.         PersonaDireccion ,
  18.         PersonaMail ,
  19.         PersonaWeb ,
  20.         PersonaObservaciones ,
  21.         PersonaAuxiliar1,
  22.         PersonaFechaCreacion
  23.         )
  24.     VALUES (
  25.         pPersonaNombre,
  26.         pPersonaApellido,
  27.         pPersonaTelefono,
  28.         pPersonaCelular,
  29.         pPersonaDireccion,
  30.         pPersonaMail,
  31.         pPersonaWeb,
  32.         pPersonaObservaciones,
  33.         pPersonaAuxiliar1,
  34.         now());
  35.  
  36.     -- 1° Insertar
  37.     SET @Idp=LAST_INSERT_ID();
  38.    
  39.     -- realizo el segundo insert.
  40.     INSERT INTO sujetos (
  41.         IdGeneral ,
  42.         IdTipoSujeto)
  43.     VALUES (@Idp, '1');
  44.     -- Y si quiers el segundo:
  45.     SET @Idp2=LAST_INSERT_ID();
  46. $$
  47. DELIMITER;

Para eso existe la función LAST_INSERT_ID();
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)