집 >데이터 베이스 >MySQL 튜토리얼 >단일 트랜잭션으로 여러 MySQL 테이블에 데이터를 효율적으로 삽입하는 방법은 무엇입니까?
여러 테이블에 MySQL 삽입
단일 MySQL 쿼리로 여러 테이블에 데이터를 삽입하려고 하면 예기치 않은 결과가 발생할 수 있습니다. 여러 쿼리를 사용하면 문제가 해결되는 것처럼 보일 수 있지만 사용자 테이블의 자동 증가 ID를 프로필 테이블의 수동 사용자 ID와 연관시키는 것은 문제가 됩니다.
트랜잭션 및 LAST_INSERT_ID() 사용
단일 트랜잭션으로 여러 테이블에 삽입하려면 다음을 사용하세요. 접근 방식:
BEGIN; INSERT INTO users (username, password) VALUES('test', 'test'); INSERT INTO profiles (userid, bio, homepage) VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com'); COMMIT;
변수에 자동 증가 ID 저장
또는 , 자동 증가 ID를 변수에 저장하면 후속 쿼리에서 이를 참조할 수 있습니다. 이는 다음을 사용하여 달성할 수 있습니다:
MySQL 변수:
INSERT INTO ... SELECT LAST_INSERT_ID() INTO @mysql_variable_here; INSERT INTO table2 (@mysql_variable_here, ...);
PHP 변수:
INSERT ... $result = mysql_query("SELECT LAST_INSERT_ID()"); $id = mysql_result($result, 0); INSERT INTO table2 ($id, ...);
트랜잭션 고려 사항
선택한 접근 방식에 관계없이 중단된 실행의 잠재적 영향을 고려하세요. 트랜잭션이 없으면 데이터베이스에 불일치가 발생할 수 있습니다. 이를 방지하려면 위에 설명된 대로 삽입 문을 트랜잭션에 래핑하세요.
위 내용은 단일 트랜잭션으로 여러 MySQL 테이블에 데이터를 효율적으로 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!