2010-11-28 5 views
0

이것은 매우 쉬운 대답 일 수 있습니다. 나는 많은 데이터베이스 물건을 잠시 동안 해왔다. 하나의 테이블에서 auto_increment 값을 다른 테이블의 값에 삽입하려고합니다. 이 작업을 수행하는 쉬운 방법이 있습니다.mysql 같은 auto_increment 값을 다른 것으로 가져 오기

CREATE TABLE table_a (
id int NOT NULL AUTO_INCREMENT, 
a_value varchar(4), 
PRIMARY KEY (id) 
); 

CREATE TABLE table_b (
id int NOT NULL, 
b_value varchar(15), 
FOREIGN KEY (id) REFERENCES table_a (id) 
); 

지금 내가 테이블에 값을 삽입 할하지만 동일한 것으로 table_a와 table_b에 대한 'ID'값을 싶습니다 예를 들어 내가 했어요.

INSERT INTO table_a VALUES (NULL, 'foobar'); 

을하지만 table_b의하여 'ID'값으로 table_a에서 auto_incermented 'ID'번호를 추출 대해 이동하는 방법을 모른다 : 지금까지 내가 가지고있다. SELECT @id = LAST_INSERT_ID()를 보았지만 작동시키지 못했습니다.

답변

0

한 번에 그렇게 할 수 없습니다.

INSERT INTO table_a (a_value) VALUES ('foobar'); 

을 한 후 생성 된 ID를 사용하여 두 번째에 삽입 : 먼저 첫 번째 테이블에 삽입해야합니다

INSERT INTO table_b (id, b_value) VALUES (@@IDENTITY, 'foobar'); 
+0

@identity는 작동하지 않지만 단서를 제공하고 답을 찾을 수 있음을 발견했습니다. – freddy6

0

LAST_INSERT_ID() 및 select 문 부분에 대한 필요합니다.