我必須將用戶配置文件存儲在帶有12位唯一ID的LDAP中,所以想到通過創建序列並使用Java代碼(seq.nextVal())訪問它來使用 數據庫。 但是我們公司只支持mysql,但是mysql不支持序列。在java應用程序中生成12位唯一編號
是否有解決方法來實現這個使用mysql。
我必須將用戶配置文件存儲在帶有12位唯一ID的LDAP中,所以想到通過創建序列並使用Java代碼(seq.nextVal())訪問它來使用 數據庫。 但是我們公司只支持mysql,但是mysql不支持序列。在java應用程序中生成12位唯一編號
是否有解決方法來實現這個使用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應用程序需要這個值,你可以:
生成ID在你的MySQL數據庫
獲取在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
測試在MySQL 5.0
所以每次我想要一個唯一的數字,那麼我必須首先調用插入表並獲取ID ..是正確的? – 2013-02-15 20:31:57
是的,你是對的。另一種策略可以是手動更新此ID,方法是將其增加1,然後檢索此值。 – 2013-02-15 20:33:04
我討厭這樣做......爲什麼Mysql不支持Sequence ... – 2013-02-15 20:36:53
@LuiggiMendoza:但是我在java應用程序中需要該Id,以便我可以分配給用戶配置文件以將其保存在LDAP中。 – 2013-02-15 20:17:42
在使用它保存數據庫之前,你確定你的應用程序需要這個ID嗎? – 2013-02-15 20:20:08
@LuiggiMendoza:是的,我確定我需要Id.I'm不保存到數據庫表,我將配置文件保存到LDAP。 – 2013-02-15 20:22:29