将UUID存储到mysql表时,我遇到了一个特殊的问题。 我有一个包含列声明的表:
expenseUUID varchar(32) primary key ,
在本专栏中我希望保存UUID。我按如下方式生成了UUID:
String expenseUUID = UUID.randomUUID().toString();
expenseUUID.replaceAll("-", "");
但是当我尝试使用JDBC插入expenseUUID时,我收到一条错误消息:
Data truncation: Data too long for column 'expenseUUID'
我该怎么做才能解决这个问题?我被卡住了。我无法弄清楚出了什么问题。
答案 0 :(得分:8)
您错过了将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