복붙노트

[SQL] SQL - 하나 개의 쿼리에서 여러 테이블에 삽입

SQL

SQL - 하나 개의 쿼리에서 여러 테이블에 삽입

내가 두 테이블, 이름과 휴대폰을 가지고 있다고 가정 그리고 난 그것을 할 수있는 방법 하나의 질의 -에, 테이블에 일부 입력에서 데이터를 삽입 할?

그것을 할 수 있다면, 구문을 설명해주십시오.

해결법

  1. ==============================

    1.MySQL은 하나의 INSERT 문에서 다중 테이블 삽입을 지원하지 않습니다. 오라클은 이상한, 내가 그 않습니다 알고 있어요 유일한 하나입니다 ...

    MySQL은 하나의 INSERT 문에서 다중 테이블 삽입을 지원하지 않습니다. 오라클은 이상한, 내가 그 않습니다 알고 있어요 유일한 하나입니다 ...

    INSERT INTO NAMES VALUES(...)
    INSERT INTO PHONES VALUES(...)
    
  2. ==============================

    2.당신은 할 수 없습니다. 그러나, 당신은 트랜잭션을 사용할 수 있으며 둘 다 하나의 트랜잭션에 포함 할 수있다.

    당신은 할 수 없습니다. 그러나, 당신은 트랜잭션을 사용할 수 있으며 둘 다 하나의 트랜잭션에 포함 할 수있다.

    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.저도 같은 문제가 있었다. 나는 for 루프와 그것을 해결.

    저도 같은 문제가 있었다. 나는 for 루프와 그것을 해결.

    예:

    나는 루프를 사용하여,이 개 동일한 테이블에 작성하려는 경우

    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
    

    당신이 최선의 해결책 인 경우 나도 몰라 작은 쿼리를 가지고 있지만, 경우 쿼리는 매우 큰이며이 좋은 솔루션입니다 경우 / 다른 / 케이스 상태와 동적 스크립트 내부합니다.

  4. ==============================

    4.여러 SQL 문은 mysqli_multi_query () 함수를 실행해야합니다.

    여러 SQL 문은 mysqli_multi_query () 함수를 실행해야합니다.

    예 (MySQLi의 객체 지향) :

        <?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    
    $sql = "INSERT INTO names (firstname, lastname)
    VALUES ('inpute value here', 'inpute value here');";
    $sql .= "INSERT INTO phones (landphone, mobile)
    VALUES ('inpute value here', 'inpute value here');";
    
    if ($conn->multi_query($sql) === TRUE) {
        echo "New records created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    
    $conn->close();
    ?>
    
  5. from https://stackoverflow.com/questions/3860280/sql-insert-into-multiple-tables-in-one-query by cc-by-sa and MIT license