代码之家  ›  专栏  ›  技术社区  ›  yossi

SQL-在一个查询中插入到多个表中

  •  31
  • yossi  · 技术社区  · 14 年前

    假设我有两张桌子, names phones 我想在一个查询中将一些输入的数据插入到表中-如何完成?

    如果可以的话,请解释一下语法。

    3 回复  |  直到 8 年前
        1
  •  19
  •   OMG Ponies    14 年前

    MySQL不支持在单个表中插入多个表 INSERT statement . 甲骨文是我唯一知道的,奇怪的是…

    INSERT INTO NAMES VALUES(...)
    INSERT INTO PHONES VALUES(...)
    
        2
  •  60
  •   Lucio    12 年前

    你不能。但是,你可以使用 交易 并将它们都包含在一个事务中。

    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

        3
  •  3
  •   Oscar Zarrus    10 年前

    我也有同样的问题。我用for循环来解决它。

    例子:

    如果我想写在2 完全相同的 表,使用循环

    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
    

    任何一个

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

    如果您有一个小的查询,我不知道这是否是最好的解决方案,但是如果您的查询很大,并且它在一个动态脚本中,具有if/else/case条件,那么这是一个很好的解决方案。