[前][次][番号順一覧][スレッド一覧]

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@]