MySQLの事で質問です。

IDなどをつける場合にAUTO_INCREMENTの属性を設定して1ずつ増やす方法は分かるのですが、例えば「ID000001」などの感じで1ずつ増やしていく場合は、どの様に設定すればよいのでしょうか?
現在は、IDのフィールドはINTで設定で試しているのですが、上手くいきません。TEXTでも試したのですが駄目でした。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:2006/12/11 20:35:46
  • 終了:2006/12/18 20:40:03

回答(4件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/12/11 20:55:06

ポイント23pt

AUTO_INCREMENT は数値型にしか適用できませんので MySQL 単体では不可能です。

http://dev.mysql.com/doc/refman/4.1/ja/example-auto-increment.ht...

プログラム側で 'IDXXX' と言った文字列を生成する事で対処すぐらいでしょうか。

id:m-nisi No.2

m-nisi回答回数159ベストアンサー獲得回数32006/12/11 21:31:53

ポイント23pt

私はPHP+MySQLで使っているのですが、

同様の事はPHP側でやっています。

$id = sprintf("%06d",$id);

として、insertしています。

id:black_kenchan

詳しく教えて下さい!!

2006/12/12 17:48:26
id:kn1967 No.3

kn1967回答回数2915ベストアンサー獲得回数3012006/12/12 07:52:23

ポイント22pt

(代替案1)フィールドは数値型としておいて、レコード読み取り後にアプリケーション側でIDという文字を付け足して整形。

AUTO_INCREMENTを使えるので楽。

(代替案2)フィールドは文字列型としておいて、レコード追加時にアプリケーション側でID000001の形式にフォーマットして書き込む。

AUTO_INCREMENTを使えないが出力時にはそのままの形で出力できる。


自動採番ということですから、以上2案のいずれかでよろしいかと思います。

id:black_kenchan

代替案1の場合、PHPなどでIDの変数を読み取るときは、どのような方法が良いでしょか?

元に戻すしか回ですようね。

2006/12/12 17:50:10
id:nagakura_eil No.4

こげつ回答回数6ベストアンサー獲得回数02006/12/12 16:00:31

ポイント22pt

b-windさんが仰るように、MySQL単体では不可能ですね。

表示のために必要なら、プログラムで変換して表示してあげる必要があります。

DBに格納しておく必要があるなら、別の文字型の項目を作り、そこに変換した形で格納しておけばいいと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません