将UUID存储到mysql表时,我遇到一个特殊的问题。
我有一个带有列声明的表:

    expenseUUID varchar(32) primary key ,

在此列中,我希望保存UUID。我生成了如下的UUID:
  String expenseUUID = UUID.randomUUID().toString();
  expenseUUID.replaceAll("-", "");

但是,当我尝试使用JDBC插入costumUUID时,出现一条错误消息:
Data truncation: Data too long for column 'expenseUUID'

我该怎么解决这个问题?我被困住了。我无法找出问题所在。

最佳答案

您只是错过了将replaceAll结果重新分配给expenseUUID var。然后,您的var仍然包含36个字符的字符串。

当前:

String expenseUUID = UUID.randomUUID().toString();
expenseUUID.replaceAll("-", "");
System.out.print(expenseUUID); // 9e73f8a4-dfde-438e-9eec-ac4e94817b6b

已更正:
String expenseUUID = UUID.randomUUID().toString();
expenseUUID = expenseUUID.replaceAll("-", "");
System.out.print(expenseUUID); // 0757c2666e934e2eb303df68bb3c9761

09-25 22:16