これはMySqlで可能ですか? R1234、R1235、R1236 ...のような文字をプレフィックスとする自動インクリメントのプライマリキーを使用できますか?MySqlの自動増分英数字主キー?
答えて
キーを2つの列として保存することができます。 char接頭辞と自動インクリメントint。これらは両方とも主キー用にグループ化されています。
CREATE TABLE myItems (
id INT NOT NULL AUTO_INCREMENT,
prefix CHAR(30) NOT NULL,
PRIMARY KEY (id, prefix),
...
これはMyISAMでのみ機能し、InnoDBのテーブルタイプでは機能しません。 –
接頭辞としてはR123の1文字しか必要ないので、スペースを節約するためにCHAR(30)ではなくCHAR(1)を使用する必要があります。接頭辞として2文字(RG123)が必要な場合は、CHAR(2)を使用してください。 –
先頭の文字が定数の場合、複合キーは避けてください。変数のペアを持つレコードを特定することは、かなり混乱することになります。 –
このような2つのフィールドを使用するとできます。しかし、私の知る限り、あなたは1つのフィールドでそれを行うことはできません。
create table foo (
code char,
id int unsigned not null auto_increment
primary key(id,code)
);
号しかし、MyISAMテーブルのためにあなたは、複数列のインデックスを作成することができますし、二列にAUTO_INCREMENTフィールドを置くので、あなたが求めているほとんど同じになります。
CREATE TABLE t1 (prefix CHAR(1) NOT NULL, id INT UNSIGNED AUTO_INCREMENT NOT NULL,
..., PRIMARY KEY(prefix,id)) Engine = MyISAM;
INSERT INTO t1(prefix) VALUES ('a'),('a'),('b'),('b');
SELECT * FROM t1;
a 1
a 2
b 1
b 2
をすることができますhere 注:INNODBエンジンでは動作しません
- 1. 自動増分された主キーをアクセステーブルに挿入
- 2. Mysql再起動自動int主キー
- 3. SQL - 主キー、クラスタードインデックス、自動インクリメント
- 4. 複合(英数字)プライマリキーと自動インクリメント
- 5. 自動増分スキューのマゼンタ
- 6. 英数字でのMySQLクエリ
- 7. 自動増分データ型モデル
- 8. 倉庫管理アプリケーション - 主キーの文字の自動インクリメント。
- 9. 文字を英数字と非英数字に分割する
- 10. 2つの主キーと自動インクリメント
- 11. 自動増分列:OracleとMySQL間のSQL構文の相違
- 12. は、MySQLの複数の主キー
- 13. INSERT INTOと主キー、自動インクリメントフィールド、デフォルト値
- 14. HibernateテンプレートSaveOrUpdateALL主キー自動生成
- 15. 非英数字のキーのPHP json_decode
- 16. PHPで英数字の文字列を増やす方法は?
- 17. 自動増分ファイルバージョンの固定アセンブリバージョン?
- 18. Eclipseの自動バージョン増分CDT(C++)
- 19. データベーステーブルの自動増分カスタムID
- 20. ユニークな英数字キー生成ツール
- 21. 英数字以外の記号のbash自動エスケープ
- 22. MySQLのクエリ(二変数の主キー/ピボットデータを展開)MySQLでは
- 23. MySql主キー> 900/1000バイト?
- 24. MySQLと2列主キー
- 25. MySql Entity Frameworkデータベースファースト - 主キー=ロング?
- 26. mysql増分変更
- 27. 再起動主キー
- 28. vb.netで英数字IDを自動生成
- 29. MySQLカラムを英数字順にソート
- 30. 増分と増分の合計数
MySQLの専門家ではありませんが、シーケンスがサポートされているかどうかを確認したい場合があります。 – Limey
目的は何ですか?かなり基本的なデータベース設計のルールに違反しているように見えます。列には単一の情報のみを含める必要があります。そのような英数字を連結することは、この正規化の規則が侵害されていることを示していることがよくあります。いつもとは限りませんが、通常は。 –