0

ユーザープロファイルを12桁の一意のIDでLDAPに保存する必要があるため、シーケンスを作成してJavaコード(seq.nextVal())でアクセスすることでデータベースを使用することを考えました。しかし、当社はmysqlのみをサポートしていますが、mysqlはシーケンスをサポートしていません。

mysql を使用してこれを達成するための回避策はありますか。

4

1 に答える 1

1

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でテスト済み

SQLフィドル:http ://www.sqlfiddle.com/#!2 / 8c508f / 1

于 2013-02-15T20:16:53.520 に答える