Mysql中的一个现象:
今天在做‘以书会友’项目时,碰到一个问题。具体情况是这样的,
项目中有一个users表,包含十一个字段,只有一个是主键,userId,并且是自增长类型的。
项目用的是SSM框架,在userMapper.xml文件中有这么一个配置,用于往数据库里添加user信息。
<insert id="insert" parameterType="com.ice.ht.model.entity.Users">
insert into users (userName, passWord,userAdress,userCall,userIC,hidden,userType,userAcountName,regTime,loginTime)
values (#{userName,jdbcType=VARCHAR}, #{passWord,jdbcType=VARCHAR}, #{userAdress,jdbcType=VARCHAR}, #{userCall,jdbcType=VARCHAR}, #{userIC,jdbcType=VARCHAR},
#{hidden,jdbcType=BOOLEAN},
#{userType,jdbcType=INTEGER},#{userAcountName,jdbcType=VARCHAR},#{regTime,jdbcType=TIMESTAMP},#{loginTime,jdbcType=TIMESTAMP})
</insert>
由于开始时把自增长的主键userId也写进了该段配置中,一直报错duplicate entry in sql for userId =1,这个联系我们平时写sql往数据库里添加数据就很容易理解,因为自增长的主键不用写进sql。
还有一个问题就是:我在把userId拿掉之后,成功地执行了insert操作,但是在数据库中显示的数据却是从4开始的,
这个问题有点奇怪,因为之前的数据并没有插入成功,但是却影响了userId的顺序。以后留意一下这方面的问题。