2012-03-15 4 views
0

私は2つのユーザを 'グループ'に追加するSQLクエリを持っています。だから私は列を持つグループテーブルを持っている -自動的に生成されたカラムの値を後続クエリに使用する

group_id (AUTO_INCREMENT = true) 
user_id 

だから私は、自動的にgroup_idのを作成

INSERT INTO group (user_id) VALUES (user_1); 

のグループに最初のユーザーを挿入します。この同じgroup_idで2番目のユーザーをテーブルに追加したいとします。では、データベースへの一回の呼び出しですべてを行う方法はありますか?イムは、次のクエリ文字列のようなものを探して - 私はわからないんだけど、あなたは試みることができる

"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

それはうまく動作するように見える、歓迎の仲間 –

+0

実際にはphpmyadminで動作しますが、javaのjdbcコネクタを使用して全く同じクエリを送信すると動作しません。 –

+0

jdbcコネクタを使用して複数のクエリを送信できますか?私はそれを使用したことがないので、私はあなたを助けることはできません。とにかく、私が書いたのは1つのクエリではないことを覚えておいてください.2つのクエリです:jdbcと別々に実行してください... – Marco

関連する問題