2012-03-10 30 views
3

MySQLの自動インクリメントの前に文字を付けることは可能ですか?データベースにはいくつかのテーブルがあり、その中には自動インクリメントによって作成された一意のIDがあるものがあります。私は正面に手紙で自動生成された数字を区別できるようにしたい。自動インクリメントの前に文字を自動的に追加

これは絶対に必要な機能ではありませんが、小さなタスクを簡単にするのに役立ちます。

+0

明らかにしておきたいことは、tableAのすべてのキーがA123の形式で、tableBのすべてのキーがB123の形式であることです。データベース内で鍵がグローバルに一意になるようにする必要がありますか? –

答えて

3

残念ながら、あなたはそれを行うことはできません。少なくともSQLではありません。オートインクリメントフィールドは整数型であるため、文字を追加すると制約に違反します。

この問題を解決するために、下のリンクをご覧ください。

MySQL auto increment plus alphanumerics in one column

私は、これは正しい方向にあなたを導くことができることを願っています。

3

あなたは自分のID値の前に独特の文字を必要とするテーブルのビューを作成し、ビューを使用してテーブルを読むことができる:他のテーブルの

CREATE VIEW VTableA 
AS 
SELECT 
    CONCAT('A', ID) AS ID, 
    other columns 
FROM TableA 

同じ。

0

おそらく最良の答えは、英数字IDの意味によります。アルファ部分は何らかの方法で増加しますか?もしそうなら、そのための規則は何ですか?アルファ部分が静的な場合は、DB内にそれを必要としません:出力するときに(おそらく[s] printf()または同様の関数を使用してゼロを前に追加して固定される長さ?)。しかし、完全な要件がわからなくても、私たちはただ推測しているだけです。

関連する問題