Cita:
Iniciado por gnzsoloyo Bueno, en ese contexto, lo que más te conviene es usar un stored procedure, ya que los datos a ingresar en las tres tablas son diferentes. No hay modo de administrar eso por un TRIGGER, ya que un TRIGGER sólo puede recibir como parámetros los datos de su propia tabla.
El único inconveniente para la codificación de un SP así es la cantidad de datos a ingresar, pero eso no es un limtante.
Gracias gnzsoloyo,
El SP, sería así?
Código SQL:
Ver originalCREATE PROCEDURE nuevoUsuario (
@user_id INT,
@user_login VARCHAR(25),
@user_pass VARCHAR(30),
@user_activation_key VARCHAR(40),
@user_name VARCHAR(30),
@user_mail VARCHAR(45),
@user_birthday DATE,
@user_sexo CHAR(1),
@user_pais SMALLINT,
@fecha_registro TIMESTAMP,
@ip_registro VARCHAR(15)
)
BEGIN
INSERT INTO tbl_user (user_login,user_pass,user_activation_key) VALUES (@user_login,@user_pass,@user_activation_key);
INSERT INTO tbl_user_personal (user_id,user_name,user_mail,user_birthday,user_sexo,user_pais) VALUES (@user_id,@user_name,@user_mail,@user_birthday,@user_sexo,@user_pais);
INSERT INTO tbl_registro (user_id,fecha_registro,ip_registro) VALUES (@user_id,now(),@ip);
END
El problema que tengo es como sé el
user_id de los dos últimos inserts. Ya que al hacer el primer insert, se crea una nueva fila en la tbl_user, la cual tiene una PK que es el
user_id. Pues como diablos hago para que los dos inserts siguientes usen el
user_id que se acaba de crear en la
tbl_user?
¿Alguien sabe y puede ayudarme?
Muchas gracias de antemano