2012-03-10 13 views
5

¿Es posible insertar en dos tablas a la vez? Necesito insertar algunos datos en una tabla (información de contacto) y luego basándome en la clave primaria insertada en una userstable y tengo la clave principal configurada como un campo (clave externa). es posible?Insertar en dos tablas

Gracias

+0

Puede necesitar realizar la operación de inserción en ambas tablas sucesivamente. – Lion

Respuesta

2

Puede escribir un procedimiento para esto.

DELIMITER // 

CREATE PROCEDURE `proc1` (contactinformation colums... usertable columns...) 
BEGIN 
    INSERT INTO contactinformation values(contactinformation colums ...); 
    INSERT INTO usertable values(LAST_INSERT_ID(), contactinformation colums ...); 
END// 

DELIMITER ; 

contactinformation colums... significa las definiciones de columna de la Tabla ContactInformation.
usertable columns... significa las definiciones de columnas de la tabla utilizable.

Después de la primera inserción puede obtener la id de la inserción si la tabla de información de contacto tiene alguna columna automática. Luego use esa clave en la segunda declaración de inserción.

+0

¿se trata de un procedimiento almacenado o un desencadenante? – Biscuit128

+0

Su procedimiento almacenado. Vea que hay 'CREAR PROCEDIMIENTO'. ¿Podría darnos el esquema de 'usertable' y' contactinformation'? Entonces lo entenderé mejor y cambiaré mi procedimiento en consecuencia –

0

Se puede crear un disparador en table1 para insertar los mismos valores en table2.

2

Puede insertar en una vista actualizable o insertable que puede hacer referencia a dos tablas diferentes con un JOIN, eche un vistazo a la documentación here.

Cuestiones relacionadas