2011-04-03 35 views
1

我有兩個表,我的環境允許交易...MySQL的插入不同的值到兩個表

表A - ID +姓名

表B - ID +值A + B值+ IDTABLE A

我可以知道如何編寫查詢來一次插入值嗎?希望可以在單個查詢中完成......只是性能是最關心的問題。

+0

嗨,我試圖創建一個相同的表你怎麼做...?可以ü請把你的SQLü...謝謝 – Loshi 2012-07-21 04:09:08

+0

@Loshi,下面的問題是對我來說正確的答案=),這就是代碼,而我只是編輯一點內容和放什麼^^ – 1myb 2012-07-21 04:29:31

+0

不行隊友我想創建兩個表作爲table1表2來分別放置用戶詳細信息和用戶名和名稱分別..即時通信havn麻煩創建兩個表如此。那爲什麼我想要如何創建表格 – Loshi 2012-07-21 04:35:12

回答

2
mysql_query("BEGIN"); 

$result_1 = mysql_query("INSERT INTO table_a ('name') values ('Chris')"); 

if(! $result_1) { 
    mysql_query("ROLLBACK"); 
    die(); // or handle the error however you choose 
} 

$table_1_id = mysql_insert_id(); 
$result_2 = mysql_query("INSERT INTO table_b ('value_a', 'value_b', 'table_a_id') values ('v1', 'v2', $table_1_id)"); 

if(! $result_2) { 
    mysql_query("ROLLBACK"); 
    die(); // or handle the error however you choose 
} 

mysql_query("COMMIT"); 
+0

似乎這是更安全和更高的性能= d Thx ^^ – 1myb 2011-04-04 02:26:05

+0

@Spencer沒問題。在發佈沒有指定PHP的答案後實現,但校長是相同的。 – Chris 2011-04-04 02:41:38

+0

@克里斯也沒關係,不用擔心= d。由於您的解決方案是很容易理解^^ – 1myb 2011-04-04 03:45:15

2

您無法在單個查詢的不同表上插入數據。

insert into tableA (name) values ('name'); 
set @last = last_insert_id(); 
insert into tableB (valueA,valueB,idtableA) values ('valueA','valueB',@last); 
+0

這是正確的太多,但它不是交易安全查詢> _ < – 1myb 2011-04-04 02:26:54

相關問題