mysql:9253
From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Wed, 21 Apr 2004 18:53:18 +0900
Subject: [mysql 09253] Re: auto_increment で次番号を確認したい。
こんにちは。 川合 孝典 <gcd00051@xxxxxxxxxx>さんの <5034514.1082536794383.gcd00051@xxxxxxxxxx> "[mysql 09251] Re: auto_incrementで次番号を確認したい。" > >SELECT LAST_INSERT_ID(); > > > >は、最後に追加されたauto_incrementフィールドの値を返すだけですので > >目的には沿わないと思われます。 > > 切り替えた後の値が問題なのだとすれば、切り替えるさいに > ALTER TABLE 見積書 auto_increment=160000; > とした後(160001 - 1というのがミソ)、 > (1)ダミーで見積書を1件発行して(INSERT) > (2)そのレコードを削除 > というのでは、いかがでしょう? 次に挿入されるauto_incrementなフィールドの値をLAST_INSERT_ID()を使って で得るには、そのmysqlセッションでauto_incrementなフィールドを含むテーブ ルに対して挿入が行われていないといけないですね。更にその mysqlセッション で複数の auto_incrementなフィールドを含むテーブルに対し挿入が行われた場 合、そのテーブルが値を取得したいテーブルである必要もあります。 このケースの場合、“alter table auto_increment=”と挿入を実行した直後 にLAST_INSERT_ID()を使って次に挿入される値を確認するのであれば、川合さん のやり方で良いと思います。山本さんの[mysql 09252]で述べられている方法で も良いと思います。 しかし、川合さん/山本さんの提示された方法がうまく機能するかどうか(うま く機能するのですが)の以前の問題として、何でその様な操作が必要なのか、と いう疑問が生じます。 元メッセージ[mysql 09239]では、 > 年度が変わるたびに、平成15年度の場合 > > ALTER TABLE 見積書 AUTO_INCREMENT = 150001 > > を年度初めに処理していますので問題ないのですが、管理画面上(PHPで作成し > ています。)で、上記のような処理をした後に、確認の意味を含めて次に発行さ > れる予定の番号(つまり正しく年度情報が設定されたか)を確認したいのですが、 > 良い方法はないのでしょうか? とあります。 “alter table auto_increment=”というDB操作が正しく実行された事を別の DB操作で確認しなければならないのであれば、その確認のDB操作も正しく実行さ れた事をDB操作で確認する必要があるでしょう。そして、その DB操作に対して もDB操作による確認が、そのDB操作に対してもDB操作による確認が、と永遠に続 く訳です。それはナンセンスではないでしょうか。 “alter table auto_increment=”を実行して、エラーが戻って来なければ、 それは成功したもの、確認の必要無し、と考えるのが普通のやり方ではないでし ょうか。 松枝知直 <tomom@xxxxxxxxxx> http://www.argus.ne.jp/~tomom/
9239 2004-04-20 18:45 [高橋政利 <takahashi@] auto_incrementで次番号を確認したい。 9240 2004-04-20 23:29 ┣[Shinya Kawaji <kawaj] 9245 2004-04-21 09:00 ┃┗[高橋政利 <takahashi@] 9248 2004-04-21 10:12 ┃ ┗[Shinya Kawaji <kawaj] 9250 2004-04-21 11:20 ┃ ┗[ML account <ml@xxxxx] 9246 2004-04-21 09:15 ┣["片寄白王" <katayose] 9251 2004-04-21 17:39 ┃┗[川合孝典 <gcd00051@x] 9252 2004-04-21 18:02 ┃ ┣["山本 瑞己" <mizuki] -> 9253 2004-04-21 18:53 ┃ ┗[ML account <ml@xxxxx] 9254 2004-04-22 00:19 ┃ ┗["KATAYOSE hakuo" <ka] 9255 2004-04-22 01:42 ┃ ┗[ML account <ml@xxxxx] 9256 2004-04-22 09:02 ┃ ┗["片寄白王" <katayose] 9258 2004-04-22 09:36 ┃ ┗[高橋政利 <takahashi@] 9265 2004-04-22 11:44 ┃ ┗[ML account <ml@xxxxx] 9249 2004-04-21 10:56 ┣[Seiji Tateyama <tate] 9257 2004-04-22 09:07 ┣[高橋政利 <takahashi@] 9264 2004-04-22 11:44 ┃┗[ML account <ml@xxxxx] 9277 2004-04-23 00:29 ┗[Kenji Irie <kenji@xx] 9279 2004-04-23 08:01 ┗[高橋政利 <takahashi@]