MySQLについての質問です。

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/04/22 11:46:43
  • 終了:--

回答(2件)

id:bmkage No.1

bmkage回答回数55ベストアンサー獲得回数02005/04/22 13:14:29

ポイント30pt

えっと。

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


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”);

id:nakeyouguisu

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

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

2005/04/22 14:13:48
id:inokuni No.2

いのくに回答回数1343ベストアンサー獲得回数212005/04/22 13:26:48

ポイント30pt

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 を取得できます。

id:nakeyouguisu

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

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

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

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

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

2005/04/25 11:45:53

コメントはまだありません

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

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

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

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