今天遇到一个有趣的错误。
前端输入值以后,会在后端进行校验,如果有重复的话,就会输出错误。没有重复则会写入数据库中。
我在前端输入了两个值:
WORK064504-1-TEST1
WORK064504-1-TEST2
而在数据库中却变成了
WORK064504-1-TES
WORK064504-1-TES
经过检查,发现数据库该字段长度为varchar16,因此超出的16个字的字符会被省略掉。
而后台在检查重复性的时候,用TEST2与第一个TES进行比对,自然不会得出重复的结果,然后TEST2输入以后又变成了TES,没触发重复性校验,却造成了重复。
解决方式:
在前端或者后端对字符串长度进行校验。
根据业务需求增加数据库字段长度。