首先,SQL语句:
<insert id="addTerm" parameterType="String">
insert ignore into term(term) VALUES (#{term})
</insert>
然后,数据库表:
简单的不能再简单的一张表:解释一下,id是自增的,同时也是主键,term就是term喽,其他的外键、索引什么的都没有。
要求是:不能使term重复插入;
刚开始认为就是判断的插入的数据是否重复,然后发现不是这样的,它判断的是主键或者索引是否重复;
所以在这里要说说这个自增的id了,因为在insert ignore into插入的时候你的现在将要插入的数据的id已经是增加一了,所以你的这个自增主键id是无论如何也不能相等的,所以自然你的数据也就不会听话的把重复的数据不插入,这也就是为什么,即使ignore时没有插入数据它的自增的键也会跳过,所以这个要注意。
解决办法就是添加个索引就欧克了呗,
因为重复的时候它的自增的键依然会增加,所以当数据的重复率很高的时候,可以考虑把自增的键搞成自己控制的一个因素,手动自增,岂不美滋滋?