增加收据编号的值

时间:2015-09-06 18:29:45

标签: java database numeric

在java中,假设我有一个程序检查数据库中的最大值并将其递增1以创建我的收据编号。

我怎样才能将第一个数字作为001开始并相应地增加它。

因此

alias.conf

int x = rs.get( sql statement for maximum value).

要插回的新号码应为002。

1 个答案:

答案 0 :(得分:2)

首先,你的变量x是int,所以它不能是001,只有1,但是你可以使用String在其他地方使用格式化:

String formattedX = String.format("%03d", x);

我想,"检查数据库中的最大值"意味着获得主键的下一个值。要做到这一点,你可以使用一个数据库序列(read about it here,它的特定数据库,这样我就无法说明如何在你的情况下实现它),并且每次你需要它时,得到它'下一个值。对于OracleDB,可以使用此查询完成:

SELECT somesequense.nextval FROM DUAL;

或者您可以为数据库使用分析MAX()函数,例如Oracle:

SELECT MAX(receipt_number) "Maximum" FROM receipts;

然后在你的java代码中增加它。但它并不是一个好的解决方案,因为当您在多个交易中获得相同的价值时,它可能会导致一些问题。

相关问题