Insert文を発行するタイミングで、自身のオートナンバーのカラムに対して振られる番号を知りたいのですができますか?
col1がオートナンバーフィールドであった場合に、
insert into tbldayo (col2,col3) values (col1,’col2に自分の連番col1をいれたい’)
こんな風な事をしたいのですが… (実際にはcol1に関連した値を入れたい)
えっと。
こういうテーブルを想定しています。
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”);
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系は思ったような記述ができないようです。
もどかしいですが、ベタベタに記述していくことにしました。ありがとうございます。
テーブルのイメージはまさにそのような感じです。期待する結果もそのようなものなのですが、
ただ、LAST_INSERT_ID()が0を返してしまいます。