问题描述
- mybatis数据表(mysql)的主键非自增长,如何插入数据(需插入主键)实现主键自增长?
-
举例来说就是有表person,person有id(mysql数据库,主键,非自增),和name,pswd三个字段。如果是自增的情况,我们通常是这样处理insert into person(name,pswd) values(#{name},#{pswd})
这种情况不许要插入主键,因为person表主键是自增长的。但如果主键不是增长的情况呢?如何处理。主键不是自增长就应该必须插入主键。
在步改动表结构的情况下!我能想到有两种方式可以解决,一个就是插入主键时实现自增长,比如第一次主键插1,第二次插2.这种方式不是很好。第二中就是在mapper.xml中是否可以实现向oracle序列那样进行自增长,小弟能力不够,还希望各位前辈能多多指教。如有更好的方法请指出。
解决方案
mysql 主键id自增长,插入数据的方法
mysql 插入数据失败防止自增长主键增长的方法
表主键自增长Mybatis插入数据报错
解决方案二:
不自增长要么就查询最新数据的主键然后增加,要么就用uuid吧
解决方案三:
如果你的键是从1开始到N的,那么直接算出有多少列,把这个列加1(看你表的情况是否要加),当作那个值插入,又或者你直接查找到该ID的最大值,然后+1,再进行插入
解决方案四:
修改
table_name 你的表名 col_name列名
id int 你可以换成你的对应的属性及类型
将某列设置为主键,如果已为主键,跳过,看下一步
alter table table_name add primary key (col_name);
增加某列为自增
alter table table_name modify id int auto_increment;
解决方案五:
修改
table_name 你的表名 col_name列名
id int 你可以换成你的对应的属性及类型
将某列设置为主键,如果已为主键,跳过,看下一步
alter table table_name add primary key (col_name);
增加某列为自增
alter table table_name modify id int auto_increment;