将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