MySQLの質問です。

あるテーブルの PK は AUTO_INCREMENT で連番が振られます。
PK フィールド名は "id" とします。
その "id" の番号が書き込みと同時にほしいのですが・・・。


その場合、書き込んで、また、読みにいくしか方法は無いのですか?
書き込みと同時に取得する方法は無いのでしょうか?
どうでもいいことかもしれませんが、MySQL のバージョンは5です。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2008/11/13 15:08:05
  • 終了:2008/11/13 15:30:31

回答(2件)

id:astrsk_ikekita No.1

astrsk_ikekita回答回数23ベストアンサー獲得回数02008/11/13 15:14:37

ポイント35pt

>書き込んで、また、読みにいくしか方法は無いのですか?

>書き込みと同時に取得する方法は無いのでしょうか?

語弊な気もしますが、

トランザクションをかけていれば、書き込みと同時にセレクトとなります。

update id

select id

idの値は同じになる。

トランザクションをかけていないと、書き込んで、また、読みにいく方法になるかと思います。

update id

select id

idの値は同じではない可能性が。

参考程度に

id:seadwell

なんか、知らない単語が出てきた・・・。

トランザクションに関してはじっくり調べます。

ありがとうございました。

2008/11/13 15:30:04
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402008/11/13 15:21:53

ポイント35pt

書き込みと同時に取得する方法は無いのでしょうか?

書き込みと「同時」と言うのをどういう意味でとるかにも寄るが、基本的には last_insert_id() 関数を使うしかないね。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 23.2.14.3 最後に挿入された列に対するユニークIDを取得する方法


一回のクエリ発行でというレベルなら、ストアドプロシジャーで INSERT と SELECT をあわせた関数を作るとか。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 17 ストアドプロシージャとファンクション

id:seadwell

私にはレベルが高いようで、チョット質問を変えます。

ありがとうございました。

2008/11/13 15:30:14
  • id:seadwell
    この質問は、尻切れトンボでスミマセン。
    判りづらい質問だと思ったので、新たに質問し直しました。
    http://q.hatena.ne.jp/1226559987

    先ほどコメント投稿したURLは、質問に決定的な文法ミスがあったので、再投稿します。
    よろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません