我正在使用java生成用户I(用于表)。当我按降序排序时,它是这样的。:

我使用以下代码获取下一个用户ID:
String tempStID = studentBO.getLastID();
if (tempStID.equalsIgnoreCase("")) {
lblStID.setText("SS-" + 1);
} else {
String[] array = tempStID.split("-");
int tempNumber = Integer.parseInt(array[1]);
int finalizeOrderId = tempNumber + 1;
lblStID.setText("SS-" + finalizeOrderId);
}当这段代码获得SS-9作为最后一个ID时,它会为下一个ID生成SS-10,但是由于它已经在那里,它给了我重复的输入错误。

有办法解决这个问题吗?
发布于 2022-11-29 22:01:14
不建议在主键中使用"SP-“。将推荐一个自动递增的任意id。参见这些文档:https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
示例:
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
pID VARCHAR(20),
... -- other columns
PRIMARY KEY (id)
);创建新用户时,可以将pID更新为"SP-“+ generated_id。
MySQL中的表保持插入顺序。如果可以保证第一次插入后不会更新pID,则仍然可以通过选择未排序表的最后一个元素获得正确的lastId。不要排序,因为它是按字母排序,而不是数字排序。
https://stackoverflow.com/questions/74620643
复制相似问题