ユーザープロファイルを12桁の一意のIDでLDAPに保存する必要があるため、シーケンスを作成してJavaコード(seq.nextVal())でアクセスすることでデータベースを使用することを考えました。しかし、当社はmysqlのみをサポートしていますが、mysqlはシーケンスをサポートしていません。
mysql を使用してこれを達成するための回避策はありますか。
MySQLは、INTEGERデータ型の自動インクリメントをサポートしています。参照する
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
フィールドを作成する場合はUNIQUE
、として設定できますPRIMARY KEY
。
例として、フィールドとして使用できID BIGINT PRIMARY KEY AUTO INCREMENT
ます。
Javaアプリケーションでこの値が必要な場合は、次のことができます。
MySQLデータベースでIDを生成します
Javaアプリケーションで価値を得る
値を使用してLDAPに保存します
テストとして、これにより、すべての要素が12桁(最後のコメントに基づく)であることが保証されます。
CREATE TABLE uniqueids(id BIGINT PRIMARY KEY AUTO_INCREMENT);
INSERT INTO uniqueids VALUES(100000000000);
INSERT INTO uniqueids VALUES(null);
SELECT *
FROM uniqueids
MySQL5.0でテスト済み