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

MySQLについての質問です。
Insert文を発行するタイミングで、自身のオートナンバーのカラムに対して振られる番号を知りたいのですができますか?
col1がオートナンバーフィールドであった場合に、
insert into tbldayo (col2,col3) values (col1,’col2に自分の連番col1をいれたい’)
こんな風な事をしたいのですが… (実際にはcol1に関連した値を入れたい)

●質問者: nakeyouguisu
●カテゴリ:ウェブ制作
✍キーワード:MySQL カラム タイミング ナンバー フィールド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● bmkage
●30ポイント

えっと。

こういうテーブルを想定しています。


create table test1(

col1 INT NOT NULL AUTO_INCREMENT,

col2 VARCHAR(64) NOT NULL,

col3 VARCHAR(64) NOT NULL,

PRIMARY KEY (col1)

)


で、これでどうでしょう。


insert into test1 (col2,col3) values(

concat(LAST_INSERT_ID()+1,”番がふられました”),

”test”);

◎質問者からの返答

テーブルのイメージはまさにそのような感じです。期待する結果もそのようなものなのですが、

ただ、LAST_INSERT_ID()が0を返してしまいます。


2 ● いのくに
●30ポイント

http://dev.mysql.com/doc/mysql/ja/getting-unique-id.html

MySQL 4.1 リファレンスマニュアル :: 11.1.12.3 最後に挿入したレコードの一意な ID はどのように取得するのか

AUTO_INCREMENT 属性を持つカラムが定義されているテーブルにレコードを挿入する場合、mysql_insert_id() を呼び出すことによって、最後に生成された ID を取得できます。

◎質問者からの返答

環境まわりを確認してきます。

同一セッション上で前にInsert文を発行している場合のみに有効なようです。

一回のInsertではLAST_INSERT_ID()はすべて0を返してしまうようです。

4.0系は思ったような記述ができないようです。

もどかしいですが、ベタベタに記述していくことにしました。ありがとうございます。

関連質問


●質問をもっと探す●



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