Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/01/2009, 12:41
tute666
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Insertar 2 campos en 4 tablas

Existen dos posibilidades.
usar stored procedures
usar transacciones: http://www.webtaller.com/construccion/lenguajes/mysql/lecciones/transacciones-mysql-2.php (exclusivamente con el engine InnoDB)

Cita:
BEGIN;
INSERT INTO TABLA1 (campo1, campo2) VALUES('valor1', 'valor2');
INSERT INTO TABLA2 (campo1, campo2) VALUES('valor1', 'valor2');
INSERT INTO TABLA3 (campo1, campo2) VALUES('valor1', 'valor2');
INSERT INTO TABLA4 (campo1, campo2) VALUES('valor1', 'valor2');
COMMIT;
esto garantiza la atomicidad de la operacion.
si se insertó en tabla1, se insertó en tabla4.
en su defecto, se produce un "Rollback", que deshace todo tipo de cambio desde el BEGIN.

El ejemplo mas común es de transaciones de banco
donde ocurriria algo como:
Cita:
BEGIN;
UPDATE clientes set saldo = saldo - 100 where id = 'idcliente';
UPDATE clientes set saldo = saldo + 100 where id = 'idclientereceptor';
COMMIT;
esto garantiza, que si se sacó dinero de una cuenta, se depositó en la otra.
en su defecto, el servidor devuelve un error, y garantiza que no se haya sacado de la primera.