mysql:9258
From: 高橋政利 <高橋政利 <takahashi@xxxxxxxxxx>>
Date: Thu, 22 Apr 2004 09:36:00 +0900
Subject: [mysql 09258] Re: auto_increment で次番号を確認したい。
もっと勉強しなさい。と言われればそれまでなのですが・・・。 > 私も最初、どうしてauto_increnentを使うのか疑問を感じました。 > 多分私なら、KEYになる項目(INDEX)にauto_incrementは使わないと思います。 > 伝票を結合(UNION ALL)したり、分解したりする場合を考えれば大変なこと > になりそうだからです。 私がベーターベースの基本的な概念が理解できていないのでしょうか、理解でき ませんでした。auto_increnentは、自動的に一番大きな番号の次番号を取得して くれるありがたい機能だと思っています。 今回の例で、見積の番号もやはり重複してはならないという点と新しい見積が作 成されるたびに番号1番ずつ増えるという点で、この機能を使わない手は無いと 思い、そのように設計しました。検索時にも見積番号で追っかけますので、KEY にしても良いかと思っております。問題点があるのでしょうか? 見積番号の他に管理用の番号を設けた方が良いのでしょうか? > Webベースのシステムは、基本的にマルチユーザ、マルチタスクなシステムで > す。マルチユーザ、マルチタスクなシステムでは、テーブルをロックするとか、 > トランザクションを使うとか、連番に関しては Oracle等のシーケンスや MySQL > でも可能なそれ類似の仕組みを使うとかの保護措置を取らない限り、 DBから取 > って来た値を書き戻すなんて事は禁じ手、非常に危険ではないでしょうか。一般 > 論としては、ですが。 連番に保護措置とは、どういったものなのでしょうか? 上で言われている、禁じ手や危険性が理解できないでおります。 一般論と言われておりますが、私のレベルでは、まだ「分かっているつもり」で 実際にその落とし穴に落ちてみないと、分からないのかもしれませんね。 テーブルロックついては、機能の概要は知ってるつもりです。「テーブルをロッ クすると、他のユーザーは使用できなくなる。」という認識です。メンテナンス 時に使うのかな?程度ですが・・・。 レコードロックとは使い方が違うと思っております。レコードロックは、重複し た更新を防止するためで、私の使っているMyISAMでは未対応で、使用したい場合 はInnoDBを使うという認識です。 テーブルロックについては次のステップにチャレンジしてみようと思います。
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@]