人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: black_kenchan
●カテゴリ:ウェブ制作
✍キーワード:MySQL フィールド 属性 現在
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● b-wind
●23ポイント

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

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

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


2 ● m-nisi
●23ポイント

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

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

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

として、insertしています。

◎質問者からの返答

詳しく教えて下さい!!


3 ● kn1967
●22ポイント

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

AUTO_INCREMENTを使えるので楽。

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

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


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

◎質問者からの返答

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

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


4 ● こげつ
●22ポイント

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ