2014-11-27 4 views
1

테이블의 '회사'열에 데이터를 입력해야합니다 : company_id | company_name처음부터 두 테이블 id에 mysql을 삽입하십시오

동시에 (같은 양식의) 다른 테이블 'contact_persons'에 : contact_name | company_id

여기서 company_id는 company_id가 PK 및 AI 인 '회사'테이블의 값이어야합니다. 먼저 company_name을 삽입 한 다음 '회사'테이블을 읽고 'company_id'를 검색하여 두 번째 테이블 ('contact_persons')에 삽입하는 대신 하나의 단계로 수행 할 수 있습니까?

가능한지 확실하지 않지만 훨씬 더 우아하고 효율적입니다. 미리 감사드립니다.

+0

예 이것을 읽을 수 있습니다. [link] (http://php.net/manual/en/pdo.transactions.php) –

답변

2

당신은 Companies 테이블에서 마지막 자동 증가 ID를 얻을 수 LAST_INSERT_ID()를 사용하여 다른 테이블에서 동일한 삽입을 할 수 있습니다. something like

INSERT INTO companies (company_name) VALUES ('test'); 
SET @last_id_companies = LAST_INSERT_ID(); 
INSERT INTO contact_persons (contact_name, company_id) 
         VALUES ('test', @last_id_companies); 
0

단일 명령문에는 없지만 단일 트랜잭션에 있지 않으므로 둘 다 동시에 실행되고 롤백됩니다.

START TRANSACTION; 
--Your statements here 
COMMIT; 
관련 문제