mysql:9257
From: 高橋政利 <高橋政利 <takahashi@xxxxxxxxxx>>
Date: Thu, 22 Apr 2004 09:07:51 +0900
Subject: [mysql 09257] Re: auto_incrementで次番号を確認したい。
おはようございます。高橋です。 皆さんの貴重な意見ありがとうございました。 みなさまどうもありがとうございました。 その必要性はともかくとして、山本さんの言われているやり方で対決できました。 > show table status like '見積書'; せっかくですので、show table statusを調べてみたのですが、ほかに色々な情 報を得ることができるようですね。まぁ実用性はあまりないのでしょうが、知ら ないより知ってた方が良いとも思います。 質問を投稿した後、色々と考えてみたのですが、 ALTER TABLE AUTO_INCREMENT でauto_incrementのid番号を変更した場合、今あるテーブルのid番号からは、ど うやってもその番号を導き出すことは不可能だということに気づきました。(遅 すぎ?) ALTER TABLE AUTO_INCREMENTで指定する番号は、実在するid番号より大きな番号 であれば、150001とか160001とかある程度決まった番号以外でも可能なわけです から、なにかの理由により規則性の無い(157777とか164467といったような)番 号にした場合、その番号を導き出すのは不可能だと思います。ただ、全く不可能 とうい訳でもなく、番号のみを管理するテーブルを他に作成して、常に次に発行 される予定のid番号をauto_incrementで管理すれば、可能だと思います。 LAST_INSERT_ID()は、これから発行する番号ではなく、発行した番号を取得する ものなので、私の場合は的はずれでした。 「エラーが戻って来なければよし」という意見もごもっともです。テストの段階 で、ALTER TABLE AUTO_INCREMENTにて番号を変更し、実際にレコードを追加して みて、ちゃんと予定通りの番号が発行されているか確認すれば、それで良いわけ で、使う側から見ればまさに「エラーがなければよし」ということになります。 この場合のエラーは、MySQLが出すエラーの他に、広い意味で「希望通りの番号 が発行できない。」といったような、ソース構造自体のエラーも含まれています けどね。 > 今回はモロにこのケースなので、“alter table auto_increment=”の確認に > 意味は全く無い、と思いますね。 という意見もありましたが、確かにその通りといえばその通りでしょう。 現段階では、私個人の趣味も入っております。自分のソースに自信もありません ので、その自信を付けるために、ユーザーの意思がちゃんとデーターベースに反 映できるように、ソースが書けているのかの確認程度でしょうか。 改良を進めていく段階で、使わなくなるのかもしれませんね。 実はSELECT文で行を追加する作業の後にも、その情報を画面に表示してちゃんと データーベースに反映されているのか確認できるように、一覧表を表示させてい ることもありました。これも今となっては不要なので、削除した経緯もあったり します。 みなさまのお陰で解決することができました。ありがとうございました。
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@]