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

mysql:9255

From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Thu, 22 Apr 2004 01:42:00 +0900
Subject: [mysql 09255] Re: auto_increment で次番号を確認したい。

 こんにちは。

"KATAYOSE hakuo" <katayose@xxxxxxxxxx>さんの
<005c01c427b4$01fb4ee0$937ba8c0@hideko>
"[mysql 09254] Re: auto_increment で次番号を確認したい。"


 引用の順番を入れ替えます。

> 「エラーが戻って来なければよし」とできる時もあるとは思います。
> しかし、“alter table auto_increment=”を実行したかどうか不確かな
> 場合が往々にしてありますよね。こんな場合、次に発生するシーケ
> ンスをみれば、alterコマンドを発行したかを確認できます。

> 松枝さんのおっしゃる通り、“alter table auto_increment=”を実行したあと
> 年度替りだけを確認するのだったら、エラーなしでOKとしてよいと思います。

 今回はモロにこのケースなので、“alter table auto_increment=”の確認に
意味は全く無い、と思いますね。

 “alter table auto_increment=”をやったかどうか分からないケースはまた
話は別でしょう。ですがが、「alterコマンドを発行したかを確認する事」は、
理論的にはあり得ても、実際にあったら「何かなぁ」な事柄だと思いますよ。

 “alter table auto_increment=”の実行は年次処理の一部ですよね。年次処理
が行われたかどうかは、確実に、直接的に、把握されて然るべきものだと思いま
す。それが人的か機構的かは別にしても、です。それが定かでないとは、ちょっ
と困りものでしょう。

 更に、テーブルにレコードを挿入した時のauto_incrementな値を取得する、こ
れが年次処理が行われたかどうかを『確実に直接的に』把握する方法とは、ボク
なら言わないと思います。確実で直接的なやり方が別にあるでしょう。


> 実は伝票入力のプログラムをCOBOLで作った時、これと同様なことをしています。
> 次に発生するシーケンスを常に入力画面に表示して欲しいと要求されたのです。
> これって意外と伝票入力する人には役立つ機能です。

 シングルユーザ、シングルタスクのシステムならそれでも良いでしょう。です
が、今回のケースはPHPを使っているシステムですよね。つまり、Webベースのシ
ステムと類推出来ます。

 Webベースのシステムは、基本的にマルチユーザ、マルチタスクなシステムで
す。マルチユーザ、マルチタスクなシステムでは、テーブルをロックするとか、
トランザクションを使うとか、連番に関しては Oracle等のシーケンスや MySQL
でも可能なそれ類似の仕組みを使うとかの保護措置を取らない限り、 DBから取
って来た値を書き戻すなんて事は禁じ手、非常に危険ではないでしょうか。一般
論としては、ですが。

 当世流のWebベースシステム、あるいは大型を使ってのマルチユーザベースの
システムでの伝票入力で伝票番号を出力するなら、何らかの方法を使ってシング
ルユーザ、シングルタスク化するか、仮発番の機構を使うか等の方策で、てマル
チユーザ、マルチタスク環境でも破綻しない環境を整えるがオーソドックスな手
法でしょう。そう単純では無いと思います。


> 余計なコメントでした。

 MySQLを使おうがOracleその他を使おうが、システムの設計はこういう点をク
リアにして行く作業は必須と思いますよ。その意味ではこの様な意見交換は有意
義だとボクは思いますけれど。受け入れられるかどうかは別問題ですね。



    松枝知直    <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@]