2012-03-15 23 views
0

我有一個SQL查詢,我將兩個用戶添加到「組」中。所以我有一個列的分組表 -使用自動生成列的值進行後續查詢

group_id (AUTO_INCREMENT = true) 
user_id 

所以我插入第一個用戶到組

INSERT INTO group (user_id) VALUES (user_1); 

它會自動創建一個GROUP_ID。我想用這個相同的group_id將第二個用戶添加到表中。那麼有沒有辦法在一次調用數據庫的時候完成這一切?進出口尋找類似下面的查詢字符串 -

"INSERT INTO group (user_id) VALUES (user_1); 
group_id = getLastInsertedKey(); 
INSERT INTO group (user_id) VALUES (user_2);" 

回答

1

我不知道,但你可以嘗試:

INSERT INTO `group` (user_id) 
    VALUES (user_1); 
INSERT INTO `group` (user_id, group_id) 
    VALUES (
     (SELECT LAST_INSERT_ID()) a, 
     user_2); 

的想法是使用LAST_INSERT_ID()函數來檢索最後自動生成的值和在下一個查詢中使用它。
正如我已經告訴過你的,我不確定它是否有效,但這個想法對你來說應該足夠好。

+0

看起來它工作正常,歡呼隊友 – 2012-03-15 18:35:25

+0

其實它在phpmyadmin中工作,但它不工作時,我發送完全相同的查詢使用java中的jdbc連接器。 – 2012-03-15 19:06:17

+0

您確定可以使用jdbc連接器發送多個查詢嗎?我從來沒有用過它,所以我不能幫你。無論如何請記住,我寫的不是一個查詢,但他們是兩個查詢:嘗試使用jdbc分別執行它們,並讓我知道它是否工作... – Marco 2012-03-16 07:01:20