2013-12-11 85 views
0

我有兩張表,vehicle和vehicle_type。我想用一種形式將相同的數據添加到兩個表中。我怎樣才能做到這一點?如何在sql中同時插入數據到兩個表中

+0

如果你有2個不同的表中插入相同的數據,你的數據庫模型肯定是錯的...;) 你不能做兩個連續的'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

你沒有specfiy你的DBMS,但在Postgres的你可以用一個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

相關問題