IDなどをつける場合にAUTO_INCREMENTの属性を設定して1ずつ増やす方法は分かるのですが、例えば「ID000001」などの感じで1ずつ増やしていく場合は、どの様に設定すればよいのでしょうか?
現在は、IDのフィールドはINTで設定で試しているのですが、上手くいきません。TEXTでも試したのですが駄目でした。
よろしくお願いします。
AUTO_INCREMENT は数値型にしか適用できませんので MySQL 単体では不可能です。
http://dev.mysql.com/doc/refman/4.1/ja/example-auto-increment.ht...
プログラム側で 'IDXXX' と言った文字列を生成する事で対処すぐらいでしょうか。
私はPHP+MySQLで使っているのですが、
同様の事はPHP側でやっています。
$id = sprintf("%06d",$id);
として、insertしています。
(代替案1)フィールドは数値型としておいて、レコード読み取り後にアプリケーション側でIDという文字を付け足して整形。
AUTO_INCREMENTを使えるので楽。
(代替案2)フィールドは文字列型としておいて、レコード追加時にアプリケーション側でID000001の形式にフォーマットして書き込む。
AUTO_INCREMENTを使えないが出力時にはそのままの形で出力できる。
自動採番ということですから、以上2案のいずれかでよろしいかと思います。
代替案1の場合、PHPなどでIDの変数を読み取るときは、どのような方法が良いでしょか?
元に戻すしか回ですようね。
b-windさんが仰るように、MySQL単体では不可能ですね。
表示のために必要なら、プログラムで変換して表示してあげる必要があります。
DBに格納しておく必要があるなら、別の文字型の項目を作り、そこに変換した形で格納しておけばいいと思います。
詳しく教えて下さい!!