mybatis数据表(mysql)的主键非自增长,如何插入数据(需插入主键)实现主键自增长? 1C

举例来说就是有表person,person有id(mysql数据库,主键,非自增),和name,pswd三个字段。如果是自增的情况,我们通常是这样处理

insert into person(name,pswd) values(#{name},#{pswd})

这种情况不许要插入主键,因为person表主键是自增长的。但如果主键不是增长的情况呢?如何处理。主键不是自增长就应该必须插入主键。
在步改动表结构的情况下!我能想到有两种方式可以解决,一个就是插入主键时实现自增长,比如第一次主键插1,第二次插2.这种方式不是很好。第二中就是在mapper.xml中是否可以实现向oracle序列那样进行自增长,小弟能力不够,还希望各位前辈能多多指教。如有更好的方法请指出。

0

4个回答

不自增长要么就查询最新数据的主键然后增加,要么就用uuid吧

0

如果你的键是从1开始到N的,那么直接算出有多少列,把这个列加1(看你表的情况是否要加),当作那个值插入,又或者你直接查找到该ID的最大值,然后+1,再进行插入

0

修改
table_name 你的表名 col_name列名
id int 你可以换成你的对应的属性及类型

将某列设置为主键,如果已为主键,跳过,看下一步
alter table table_name add primary key (col_name);
增加某列为自增
alter table table_name modify id int auto_increment;

0

修改
table_name 你的表名 col_name列名
id int 你可以换成你的对应的属性及类型

将某列设置为主键,如果已为主键,跳过,看下一步
alter table table_name add primary key (col_name);
增加某列为自增
alter table table_name modify id int auto_increment;

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Mybatis插入数据 主键自增长
在使用mybatis时,常常会出现这种需求: 当主键是自增的情况下,添加一条记录的同时,其主键是不能使用的,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xml中加入以下属性即可: useGeneratedKeys="true"  keyProperty="对应的主键的对象"。 <!-- 主要是在主键是自增的情况下,添加成功后可以直接使用主键值,其中keyPro...
mysql非主键自增长
在网上查过一些资料,很多人说,mysql中,只有主键才能设置为自增长列。 经过一些深入的了解,其实并非只有主键才能设自增长,而是设为“键(key)”的列就可以设置自增长。   下面通过几个例子来具体说明一下: 首先是最普通的创建方式:   执行上面的创建语句,会报错,提示there can be only one auto column and it must be defin...
第四天学习Mybatis总结——返回自增长的主键|非自增长的主键
1.返回自增长的主键 第一种方法: Student.java包括id,stuNum,stuName三个属性 数据库中student表包含三个属性包括id stu_num,stu_name三列,id为主键,自增长。 StudentMapper.xml配置文件 <!-- 当实体属性和表字段名不相同的时候, 必须书写以下代码--> <resultMap type...
myBatis主键自增长sql
Insert insert id="insertVoteComment" parameterType="" keyProperty="F_COMMENT_ID"> selectKey resultType="String"order="BEFORE" keyProperty="fCommentId">                selectto_char(sysdate,'yy
mybatis自增长主键
1、sqlserver数据库,如果设置了主键自增长,就不在插入语句中插入主键,否则报错。 2、如果想在插入成功后获取自增长主键ID,需要在mybatis映射文件的插入配置加useGeneratedKeys=”true” keyProperty=”id”,否则插入成功后不能立刻获得自增长ID <insert id="insert" parameterType="com.model.loc....
MySQL主键字段自增长的插入
在插入记录时,主键的自增长序号不连续是什么原因?有人说是什么事物回滚?
自增长主键
数据库的Conncetion使用、事务控制、表设计是核心,肖老师这套视频以JDBC操作事务为核心,详细讲解了大型企业级项目如何使用JDBC访问数据库
主键自增长
主键列的特性:必须唯一,不能为空通常设为主键列为整型,然后设置自增长 创建表时指定主键自增长 CREATE TABLE student( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(50), age INT ); 修改表时设置自增长 ALTER TABLE student ADD CHANGE sid(字段名) ...
Mysql主键自增长的问题
是这样的,简单的mysql表,id是主键,且自增长。rnrn[code=sql]id valuern1 okrn2 good[/code]rnrn现在我把上面两条记录删除,整个表是一个空表了,然后我再加一条记录([color=#FF0000]直接填值,不指明主键[/color])。 rnrn他就变成了:rn[code=sql]id valuern3 new[/code]rnrnid从3开始了,前面id记录被我删除了,他的id怎么从3开始呢,这个是有什么意义?rn
Mysql 主键自增长
alter table userinfo modify id integer auto_increment ;
mybatis主键自增长,注解返回主键
实体类 @TableId(value = "projectID",type = IdType.AUTO) @TableField("projectID") private Long projectID; 插入的时候就不能直接用BaseMapper接口的Integer insert(T var1);了,需要自己实现 @Options(useGeneratedKeys = true...
Oracle实现主键自增长
-- 主键设置: xx_id number(24) primary key --创建xx表序列 create sequence XX_seq --序列名称 increment by 1 -- 每次加几个 start with 1 -- 从1开始计数 nomaxvalue --NOMAXVALUE -- 不设置最大值 order --设...
Mybatis插入数据后返回自增长主键
mysql和sqlserver支持自增长字段,可使用如下方法获取插入数据的主键值 mybatis sql管理文件,keyProperty对应User中用来存放主键值的字段,执行插入操作后,主键值会被放入parameterType的keyProperty属性中。 <insert id="insertUserAndGetUserId" useGeneratedKeys="true" ke...
java代码如何实现主键的自增长
我的数据库用的是sqlite,用的spring mvc ,没用hibernate,所以我不知道怎么在数据库中实现integer类型的主键实现自增长,只能靠java代码实现,能不能给个类似下面的案例,并给出点解释啊(本人刚接触java,求大神解释的详细点)[code=java]@MappedSuperclassrnpublic abstract class IdEntity implements Serializable rn protected Logger log = LoggerFactory.getLogger(getClass());rn rn protected String id = null;rnrn @Idrn @GeneratedValue(generator = "system-uuid")rn @GenericGenerator(name = "system-uuid", strategy = "uuid")rn @Column(length = 32, name="id_")rn public String getId() rn return id;rn rnrn public void setId(String id) rn this.id = id;rn rn[/code]
ORACLE数据库如何实现主键自增长
先建立一个自增长序列: create sequence SEQ_USER minvalue 12000 --最小值 nomaxvalue --不设置最大值 start with 12000 --从1开始计数 increment by 1 --每次加1个 nocycle --一直累加,不循环 nocache; 再创建一个触发器,...
mybatis配置oracle的主键自增长
1.Oracle数据库建表成功 task 2.并设置主键 id 3.创建序列 seq_task 4.mapper.xml                insert into task(id,name,tStatus,startTime,endTime,rStatus) values(seq_task.nextval,#{name},#{tStatus},#{startTime},#
PowerDesigner16如何实现主键自增长?
背景网上的做法都是先将概念数据模型转换为物理数据模型,然后双击主键字段,选中identity。 这种做法是正确的,然而有些情况下,不做相关设置的前提下,我们这批新手会找不到identity选项,网上资料也少之又少,恰好我也遇到这个问题,并且浪费了很多时间,才找到答案,记录下,以对后来人有所帮助。解决方法我们目前继续解决的问题是:如何能够显示identity选项?请看。。 Database ->
如何删除表的主键和自增长导入数据后再恢复主键和自增长?
因为表有自增长的主键, 导入数据的时候不方便,虽然设置了identity_insert XX on可还要显示指定插入的字段列表,rnrnrn所以,我想先删除自增长和主键设置, 然后插入数据 ,最后再恢复主键和自增长设置,可不知道怎么做rn
MySQL数据表中有自增长主键时如何插入数据
MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候; 如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值; 也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填; 具体:1.创建数据库 create table if not exists userInfo ( id int PRIMARY KEY AUTO_I
在PowerDesign设置MYSQL主键自增长
  打开PDM,选中一张表,双击打开表属性,选择Columns列,选中主键字段,选择Properties编辑,界面的最下方右下角有一个Identity,选中这个之后,生成的表主键就是自动增长的了...
PowerDesigner 设置mysql 主键自增长
PowerDesigner  设置mysql 主键自增长,见图标识步骤:  
mysql添加主键并且自增长
alter table table_name add id(主键名称) int(11) unsigned not null auto_increment ,add primary key (id)
mysql中主键、自增长问题
各位好:rn使用mysql,其中一张表是部门表,有字段id,deptId,deptName.rn我想把id设为自增长,deptId设为主键,为什么总是报错?#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a keyrn怎么解决?各位
Mysql设置自增长主键的初始值
alter table test AUTO_INCREMENT = 1001; test修改为表名就好了,这样,主键的初始值就为1001
Mysql新增自增长主键列
有的时候需要对于一个Mysql数据库表添加个自动增长主键,刚开始的时候使用下面的语句: alter table taskinfoconfig add column id int(10) not null auto_increment ; alter table taskinfoconfig add primary key(id); 可是在执行的时候发现报错,信息如下: In
mysql的int主键自增长问题
id设置为自增长int型,如何设置为按顺序自增长。rn例如我有三条记录id最大为3,但是做了一个删除操作id变为2,然后在插入操作id自增长就会为4,而不是3。rn或者如何去取到下一个自增长id,请问如何解决呢?
Oracle主键自增长
1.创建表 create table CUS_USER ( ID NUMBER(10) not null primary key, NAME VARCHAR2(20), PASSWORD VARCHAR2(100) );2.创建序列 create sequence CUS_USER_ID start with 1 increment by 1 nomaxv
Oracle 主键自增长
Table: CREATE TABLE TEST_A ( ID NUMBER NOT NULL, NAME CHAR(200), ADDRESS CHAR(200), CONSTRAINT ID PRIMARY KEY (ID) )   Sequence: create sequence S_TES...
Oracle 自增长主键 三种方式
Oracle操作篇 oracle建表空间,建表可以借PL/SQL进行创建,非常使用。介绍一个小技巧 1、oracle表中的主关键字,如何设成自动增长?并对该字段插入数据? 两种方法: 一、序列 创建sequence create sequence sequence_name minvalue 1 maxvalue 99999999 start
sql 修改主键自增长
在不删除数据的前提下, 怎么用语句把一个表的主键修改成 自增长,
oracle创建主键自增长
先创建序列 CREATESEQUENCE TestIncrease_Sequence INCREMENTBY 1--每次加几个 STARTWITH 1--从1开始计数 NOMAXVALUE--不设置最大值,设置最大值:maxvalue9999 NOCYCLE--一直累加,不循环 CACHE 10; 注意的是再PL/SQL中创建了触发器,并不能立刻获取sq序列,需要退出再次重新进入就可以了,其中的
关于hibernate主键的自增长
[size=medium][/size][list] [*] [/list][quote][/quote][b]Hibernate使用sequence生成自动主键,需两步 1:在库中建立sequence CREATE SEQUENCE exp_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE...
Oracle 9i主键自增长
<!--StartFragment -->  终于把Oracle 9i的自增长字段的表建好了 一、建表SQL> Create table URL(  2  ID number(10) not null,  3  URL varchar(800) not null,  4  primary key(ID)  5  ); 二、建序列 SQL> create seque...
PowerDesigner设置主键自增长
本人在PowerDesigner中设计了一张User表,其中想为将主键变为递增。 选中UserId单击右键选择Properites 将Identity选中即可
oracle 自增长主键.doc
oracle 自增长主键.docoracle
ORACLE创建自增长主键
drop table INSTITUTION_CATEGORY; create table INSTITUTION_CATEGORY( ID number(5) not null primary key, NAME varchar2(50) not null, PARENT_ID number(5), IS_VALID varchar2(2...
Hibernate 主键自增长
今天突然发现了一个问题,用Hibernate的save方法保存数据的时候发现主键没有报错,插不进去。然来记得不用我去自动生成主键的,研究了一下,发现然来都是其它同事都弄好了,对这个自增长主键进行总结了一下: 目前发现有两种方法: 1,通过注解的方式,利用数据库里面创建的sequence自动增长 2,通过写一个spring的OracleS...
Postgresql的主键自增长
原文:http://www.cnblogs.com/zhanghaoh/archive/2013/03/13/2957465.html   --建一个序列,缓存是1,每次增加1 create sequence id_seq increment 1 minvalue 1 maxvalue 9223372036854775807  cache 1;   --从1开始 select se...
ORACLE数据库设置主键自增长
今天小编跟大家分享一点关于oracle数据库的知识,用DDL语句实现主键自增长 第一步:你需要有一张带主键的表~这里叫haha表~工作也要开心!!! 建表语句字段类型长度都是默认长度,我没改,道友们需要多长自行更改~ create table haha( id varchar2(20) primary key, hehe varchar2(20) ); 第二步:创建序列:具...
oracle设置主键自增长
oracle的主键自增长不像mysql的主键自增长设置那么方便,需要先设置序列,然后在设置触发器。此表的触发器可以复制以前类似触发器,然后对特定名字进行修改。 设置完触发器,不需要再在数据表中做相关设置,因为触发器中已经进行了相关关联,当出入数据时,主键就会按照步长自动进行增加。 步数: 增加主键,设计数据表; 增加数据表主键相关序列; 增加数据表触发器。  ...