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

mysql:7409

From: "Kondo Tatsuya" <"Kondo Tatsuya" <konet@xxxxxxxxxx>>
Date: Mon, 7 Apr 2003 05:12:41 +0900
Subject: [mysql 07409] 数値型の許容範囲を越えそうな場合の処理方法

近藤と言います。
ちょっと長文になってしまいましたがよろしくお願いいたします。

CREATE TABLE date_tb
(date_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 date_name CHAR(255) NOT NULL , PRIMARY KEY (date_id))

とした場合、date_idには、18446744073709551615まで格納出来ると思うのですが、
データがそれ以上に膨大になり、date_idに格納出来る許容範囲を越えてしまう恐れ
がある場合、みなさんならどのようにしておられるのでしょうか?

今回の私のケースでは、古いデータは状況によりほとんどいらなくなるので、
不要なデータはDELETEして、再利用しようと思ったのですが、

例えば、DELETE FROM date_tb WHERE date_id = 4  として、

date_id | date_name
------+----------
      1  |  test1
      2  |  test2
      3  |  test3
      5  |  test5
      6  |  test6

となった場合、再度 date_id に 4 を利用したいのですが、これは可能なのでしょうか?

で、実際にやってみました。
最適化すれば大丈夫なのかな?と思って、

DELETE FROM date_tb WHERE date_id = 4
OPTIMIZE TABLE date_tb
INSERT date_tb SET date_name = 'testtest'

結果ダメでした。

一度、AUTO_INCREMENTで生成してしまったら、それをDELETEし、
最適化しようが、普通にINSERTした場合、二度と同じデータを扱いません。

# 当たり前と言えば当たり前なのですが・・・。
# 明示的に date_id を指定すれば可能ですが、
# そんなの恐ろしくて出来ません。

もう1つ考えたのは、REPLACEを使った方法です。
日付フィールドと、データが必要か不要かを判別するフィールドを作成し、
データが不要、尚且つ日付の古いレコードのdate_idを取得し、
REPLACEで上書きする方法です。

しかし、効率が悪い気がします。
何かとてつもなく簡単な方法がありますでしょうか?

長文になってしまいましたが、ご了承下さい。
よろしくお願いいたします。




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

->    7409 2003-04-07 05:12 ["Kondo Tatsuya" <kon] 数値型の許容範囲を越えそうな場合の処理方法
      7410 2003-04-07 07:58 ┣[MORIGUCHI Hirokazu <]                                       
      7427 2003-04-09 01:11 ┃┣["Kondo Tatsuya" <kon]                                     
      7429 2003-04-09 10:02 ┃┃┗["JUNSIK LIM" <koniwe] UNION のようなもの?              
      7430 2003-04-09 10:52 ┃┃ ┗[Shinya Kawaji <kawaj]                                 
      7497 2003-04-16 13:51 ┃┃  ┗["janreno" <janreno@x] auto_increment でレコードの無しの場合常に 1 から始めたい。
      7499 2003-04-16 15:20 ┃┃   ┗[GUSTAV <beatle@xxxxx] Re: auto_increment でレコードの無しの場合常に 1
      7500 2003-04-16 15:35 ┃┃    ┗[Isao Tanaka <isao@xx]                           
      7502 2003-04-16 17:00 ┃┃     ┣[<lavlav@xxxxxxxxxx> ]                         
      7505 2003-04-16 18:40 ┃┃     ┗["janreno" <janreno@x]                         
      7506 2003-04-16 18:57 ┃┃      ┣[Isao Tanaka <isao@xx]                       
      7508 2003-04-16 19:05 ┃┃      ┣[GUSTAV <beatle@xxxxx]                       
      7515 2003-04-17 01:16 ┃┃      ┣[とみたまさひろ <tomm]                       
      7518 2003-04-17 01:44 ┃┃      ┃┗["Kondo Tatsuya" <kon]                     
      7519 2003-04-17 10:15 ┃┃      ┗[takeyuki miyagawa <m]                       
      7525 2003-04-17 16:20 ┃┃       ┗["janreno" <janreno@x]                     
      7526 2003-04-17 16:57 ┃┃        ┗[とみたまさひろ <tomm]                   
      7528 2003-04-17 17:35 ┃┃         ┗["janreno" <janreno@x]                 
      7531 2003-04-17 18:20 ┃┃          ┗[とみたまさひろ <tomm]               
      7428 2003-04-09 01:26 ┃┗["Kondo Tatsuya" <kon]                                     
      7434 2003-04-10 01:16 ┃ ┗["Kondo Tatsuya" <kon]                                   
      7411 2003-04-07 12:32 ┗[Shinya Kawaji <kawaj]