sql insert de varias tablas en una consulta


Suponiendo que tengo dos tablas, names y phones y quiero insertar datos de alguna entrada a las tablas, en una consulta - ¿Cómo se puede hacer?

Por favor, si se puede hacer, explique la sintaxis.

Author: OMG Ponies, 2010-10-05

3 answers

MySQL no admite la inserción de varias tablas en una sola instrucción INSERT. Oracle es el único que conozco que lo hace, extrañamente...

INSERT INTO NAMES VALUES(...)
INSERT INTO PHONES VALUES(...)
 19
Author: OMG Ponies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-05 01:32:42

No puede. Sin embargo, PUEDE usar una transacción y hacer que ambas estén contenidas dentro de una transacción.

START TRANSACTION;
INSERT INTO table1 VALUES ('1','2','3');
INSERT INTO table2 VALUES ('bob','smith');
COMMIT;

Http://dev.mysql.com/doc/refman/5.1/en/commit.html

 60
Author: Joshua Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-14 22:22:23

Yo tenía el mismo problema. Lo resuelvo con un bucle for.

Ejemplo:

Si quiero escribir en 2tablas idénticas , usando un bucle

for x = 0 to 1

 if x = 0 then TableToWrite = "Table1"
 if x = 1 then TableToWrite = "Table2"
  Sql = "INSERT INTO " & TableToWrite & " VALUES ('1','2','3')"
NEXT

O bien

ArrTable = ("Table1", "Table2")

for xArrTable = 0 to Ubound(ArrTable)
 Sql = "INSERT INTO " & ArrTable(xArrTable) & " VALUES ('1','2','3')"
NEXT

Si tiene una consulta pequeña no se si esta es la mejor solución, pero si su consulta es muy grande y está dentro de un script dinámico con condiciones if/else/case esta es una buena solución.

 3
Author: Oscar Zarrus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-18 17:53:32