2013-12-11 2 views
0

두 개의 테이블, vehicle 및 vehicle_type이 있습니다. 하나의 양식을 사용하여 두 테이블에 동일한 데이터를 추가하려고합니다. 내가 어떻게 할 수 있니?SQL에서 동시에 두 테이블에 데이터를 삽입하는 방법

+0

당신이 다른 테이블에서 동일한 데이터를 삽입해야하는 경우 , 데이터베이스 모델은 틀린 ...;) 두 개의 연속 INSERT INTO ... 쿼리를 수행 할 수 없습니까? –

+2

SQL에는 양식과 같은 것이 없습니다. 따라서 태그를 확장하여 개발중인 것을 나타낼 수 있습니다. –

+0

트랜잭션에서 두 삽입을 모두 수행 할 수 있지만 표준 SQL의 INSERT 문 (및 DELETE, UPDATE 등)은 * one * 표. 따라서 두 문장이 필요하거나 해당 언어에 대한 제품 별 확장 (해당되는 경우)을 사용하십시오 –

답변

1

매개 변수를 사용하여 저장 프로 시저를 만들 수 있습니다.

매개 변수가있는 문을 삽입하는 2라는 저장 프로 시저 내부.

저장 프로 시저를 사용하면 오류가있을 경우 두 테이블에 대한 삽입을 롤백 할 수 있습니다.

create procedure insert_into_2_tables 
@column1 varchar(50), 
@column2 int, 
... 

as 

begin tran 

insert into table1 values (@column1, @column2, ...) 

insert into table2 values (@column1, @column2, ...) 

if @@error <> 0 
    rollback tran 
else commit tran 

- 당신은 양식, 코드 등

0

쓰기 모두 차량과 차량 종류 테이블에 데이터를 삽입하기위한 두 개의 INSERT 문에서이 저장 프로 시저를 호출 할 수 있습니다.

0

당신은 당신의 DBMS를 specfiy하지 못했지만, 포스트 그레스에서 단일 SQL 문으로이 작업을 수행 할 수 있습니다

with new_type as (
    insert into vehicle_type values (1, 'big') 
    returning id 
) 
insert into vehicle 
values 
(1, (select id from new_type), 'super model'); 

SQLFiddle 예 : http://sqlfiddle.com/#!15/9051c/1

관련 문제