我正在开发一个使用JSP + Servlets和Oracle10作为后端的 Web 应用程序。
我有一个用于存储与客户相关的信息的表:
|ID |Name |City |
|N0001 |ABC |NASIK |
|N0002 |PQR |NASIK |
|N.... |... |NASIK |
|N9999 |XYZ |NASIK |
|N10000 |LMN |NASIK |
|N10001 |MNO |NASIK |
在上表中ID
是一个主键,它是根据City
(+数字的第一个字符City
(数字必须至少4个字符长,所以对于第一个ID,将在数字上添加三个前导零))自动生成的
For Generating ID:
我正在使用以下查询从表中获取最大 ID,然后使用一些 java 代码 Auto Generate Next ID
。
query = "select ID from CUST where CITY='NASIK' order by ID desc";
ID
然后按预期从其中获取第一个,ResultSet
直到 ID 到达N9999
,但是当ID
isN10000
或更高时,查询将给我N9999
作为 Largest ID
。
之后的输出N9999
:
ID
----------
N9999
N10001
N10000
N0002
N0001
输出预期
ID
----------
N10001
N10000
N9999
N0002
N0001
所以我的问题是上面的查询有什么问题吗?或者有没有更好的方法来自动生成包含字符串的 ID。
Edit1
我的要求是自动生成ID
将在起始位置包含字符的字符。