今天碰到一个sql报错,Duplicate entry 'xxxx' for key 'xxxx'
唯一索引重复了,实际上没重复,后来得知是因为数据长度超出了字段长度,mysql直接截断存了。
发生问题的原因是字段长度不足,我代码逻辑中不会截断,所以我会判断这是个新的数据而不是以前就存在的老数据,所以没有走更新逻辑而是插入逻辑,但是插入的时候mysql会截断后存储,导致我这条数据存的是截断后的数据,每次代码逻辑都进插入逻辑,但是被截断后唯一索引都会重复。
改的时候也遇到问题,不能改成varchar500,,因为索引中的字段不能超过255
报的错:Specified key was too long; max key length is 767 bytes
网友评论