人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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


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

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:MySQL PK バージョン フィールド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● astrsk_ikekita
●35ポイント

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

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

語弊な気もしますが、

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

update id

select id

idの値は同じになる。

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

update id

select id

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

参考程度に

◎質問者からの返答

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

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

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


2 ● b-wind
●35ポイント

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

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

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


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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ