MySQL主键自增问题,一个方法同时往一个表中插入记录 10C

方法一插入完,执行方法二,此时方法二包主键冲突。方法二和方法一处在不同事务中

0

1个回答

如果是用主键primary或者唯一索引unique区分了记录的唯一性(如果没有唯一索引,ignore无从忽略,主键自增并不会有完全重复的两条数据),避免重复插入记录可以使用:
代码如下:
INSERT IGNORE INTO table_name (email, phone, user_id) VALUES ('test9@163.com', '99999', '9999');
这样当有重复记录就会忽略,执行后返回数字0
还有个应用就是复制表,避免重复记录:
代码如下:
INSERT IGNORE INTO table_1 (name) SELECT name FROM table_2;

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL数据表中怎么给已经有主键自增的表加入数据
MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候;rnrn如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填;rn具体:rn1.创建数据库rncreate table if not exists userInfo (nid int PRIMARY KEY
Mysql-基本练习(05-插入、查询所有记录、主键、主键自增)
1.插入记录语法:INSERT [INTO] tb_name [(col_name,……)] VALUES(val,……);INSERT INTO user(username,age,salary) VALUES('笑笑','18',10000.00);2.查询记录语法:SELECT expr,…… FROM tb_name;SELECT * FROM user;3.建表时添加主键约束(主键约束的...
向有自增长主键的表插入数据
在测试过程中,我们会遇到在测试过程中需要在数据库中造数据来配合测试,一般来说表都会有唯一主键,并且有时候主键是自增长的,这时候我们插入数据的方法与没有自增长主键时的方法略微不同,可以用使用以下两种方式来实现。nnnn方式一、nn如果指定了该列的值,则新插入的值不和已有的值重复,而且必须大于其中最大的一个值nnINSERT INTO test_orders VALUES(14, 'jd2018051...
MyBatis(三) 解决设置数据库自增后,导致两表关联插入的数据不匹配问题
最近在做关联数据插入的时候,遇到一个问题,先描述一下我遇到的问题:nn 有三张表:商品表:goods(id,name,price)nn 订单表:payment(id,payment_date,count)nn 关系表:relation(id,goods_id,p...
mysql生成一条A表数据的同时得到这条数据的自增ID
INSERT INTO pf_mission (title,createTime,status) values (#{title},now(),1)rnrn注:此法传入的参数只能是一个对象,在数据库生成自增Id后马上将此Id赋值给参数对象,即给该对象setId(自增的id)rnrnrn因之前想在生成一条A表数据的同时立刻给B表生成一条数据,并且将A数据的自增Id赋值给B表的一个字段,整个想法错误,
oracale 触发器 实现 插入一跳数据时同时在另一个表插入数据,数据库触发器实现id自增
oracale触发器nn1.在packing_list表执行insert插入操作后,同时将数据插入到packing表中nn nnncreate or replace trigger packing_trg //触发器名称 packing_trg nafter insert on packing_list //packing_list 表名称 在packing_list 表执行...
有自增列时往里面添加批量字段,插入不进去的处理方法
先写一行rnSET IDENTITY_INSERT 表名 ONrn然后就可以忽视自增列这一限制rn插入完数据记得关闭rn rnSET IDENTITY_INSERT 表名 OFF
mysql存储过程(循环插入),获取自增主键作为外键插入其他表
#定义存储过程delimiter //DROP PROCEDURE IF EXISTS  pro_addaccount;##hosp_name医院名称,num_limit循环产生多少账号CREATE PROCEDURE pro_addaccount(in hosp_name VARCHAR(50),in num_limit int)BEGINDECLARE i int default 1;DECL...
一张表里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是18还是15 ?
一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是18;但是如果重启(文中提到的)MySQL的话,这条记录的ID是15。因为InnoDB表只把自增主键的最大ID记录到内存中,所以重启数据库或者对表OPTIMIZE操作,都会使最大ID丢失。         但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是18。因为MylSAM...
Mybatis中添加一条数据的同时返回自增主键ID
rn"在Mybatis中,添加一条数据的同时返回其自增主键ID值"rnrn方法:在mapper.xml文件中进行配置keyProperty属性.rn[code="java"]rn insert into user(userName,password)rn values(#{userName},#{password})rn[/code]rnrnps:userGeneratedKeys="true"(...
MySQL - 数据插入与主键冲突
【1】主键冲突在插入数据的时候,有时候会遇到主键(唯一键)冲突的情况。下面讲述两种解决办法:① 更新原数据insert into 表名[(字段列表:包含主键)] values(值列表) on duplicate key update 字段 = 新值。示例如下 :insert into p_user (id,name,age,sex) VALUES(1,'luco',13,'b1y') n-- 如果主
MySQL联合主键自增分别产生递增id
比如员工表,要在部门内递增生成编号 ,例如 nn nnt_user表nn       dept          user_no_namenn--------------------------------------nn       财务部         财务部001nn      研发部         研发部001nn      财务部        财务部002nn      财务部  ...
mysql 查询结果保存或创建新表 同时增加自增主键
如果表存在,则查询结果插入到表中:ninsert into table_1 select * from table_2;nn如果表不存在,则插入到新表中ncreate table_1 select * from table_2;nn如果新表要增加自增id,再输入以下命令:nalter table table_1 add id int not null auto_increment primary ...
获取mysql 自增id 和mysql 下一个自增id的方法
mysql获取表中自增id的方法:rnrnrn1. 使用 select MAX(id) from tablename; 获取的是表中最大的id;顺序执行  insert ---> delete 插入的数据----> select MAX(id) from tablename; 获取到的是 insert 之前的最大id; rnrnrn2. SELECT LAST_INSERT_ID(); 获取到的是
mysql高并发下主键冲突
事情是这样的,博主刚刚写完一个小项目,由于使用的量比较大,所以做了一下压测,在插入数据的时候报出了如下错误 :[http-bio-****-exec-67] DEBUG c.j.m.a.d.A.insertAppUser!selectKey - ==> Parameters: org.springframework.dao.DuplicateKeyException: ### Error u...
C#连接mysql数据库插入数据后获取自增长主键ID值
C#连接mysql数据库后,获取插入数据的自增长主键ID值
表中有自增长主键时,插入数据的方法
数据库的表中有自增长主键时(如图所示),我们该怎么插入数据呢?方式一:    当需要插入的数据比较少时,即可以通过一条一条的插入时,我们可以指定该列(id)的值,但是新插入的值不能和已有的值重复,而且必须大于其中最大的一个值方式二:    当需要插入的数据量比较大时,需要时通过储存过程或者其他方式来批量生成数据插入时,显然方式一的方法不可行。那现在又该怎么办呢?    有两种解决方法:    1)...
mybatis 使用自增主键, 插入记录并返回自增主键 MySQL
mybatis 使用自增主键, 插入记录并返回自增主键 MySQL
MySql获取插入记录自增主键ID值
现在这种场景偏多,获取的方式也很多。像MyBatis和Hibernate都有方式去获取该值。现在简单讲讲MyBatis是获取插入记录自增主键ID值的。public class Stu {n private int id;n private String name;n public int getId() {n return id;n }n public v
mysql数据插入失败,插入成功后主键跳过自增
n n n 昨天在调试一个业务代码中,无意间发现了一个问题。数据入库后的主键不是连续自增的,主键键值没过几秒就从两千多直接跳到了五千上下。这是为什么?瞬间引起我的注意。先简单说明下环境。Mysql版本:5.6.23。为了防止某些数据重复,数据库中对某些字段设置了唯一索引,即unique key。经确认此表也只有一个业务程序在操作。那么,问题就定位到主键的auto_in...
mysql8基础 insert 表中含有自动增长的字段,插入数据时用null或default
       OS : Ubuntu 18.04.1 LTSn       DBMS : mysql 8.0.12n       blog : blog.csdn.net/shiwanwun typesetting : Markdownnn nn数据,数据,命根就在数据 ! 操作数据库时,一定要谨慎小心。师...
mysql删除一个表后,下次再插入的时候,自增列会在原来基础上继续增加
delete from table1;nn通过:nntruncate table table1;使新的表的自增列从1开始计数nn 
MySQL数据表中有自增长主键时如何插入数据
MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候;n如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;n也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填;n具体:1.创建数据库 create table if not exists userInfo (nid int PRIMARY KEY AUTO_I
MySQL插入数据后返回自增id的方法
在数据库操作中,很可能在执行插入操作(A表)时,需要先在另一张表(B表)中插入一条记录,然后获取其主键id,并将这id插入这张表(A表)。rn对于新手而言,想到的可能是我先在B表执行“insert into”插入一条记录,然后立即执行“select max(id)"查询操作,查询最大id就行了。这样做,看似可行,但有很大隐患存在:rnrn1、在数据量庞大的情况下,第二条查询语句效率极低。我遇到的情
MySQL数据库插入一条数据获得其自增的id
xml文件:service实现类:
事务内 获取自增id
问题: 在service中 spring开了事务,在事务中插入一条记录,然后需要用到自增的id,但是获取不到,   情景:     A 表   id  name                 B 表   id  Aid createtim                 B表的aid 是 A 表的id                  在一个事务中,先新增A表记录,再新增B表记录;向A表新增记录...
关于将表中自增长字段赋值给另外一个字段的方法
关于将表中自增长字段赋值给另外一个字段的方法
mysql的骚操作:自增长的字段同时插入到另一个字段
rn 如题rnrn1 insert into users(username,password) values((select auto_increment from information_schema.tables where table_schema ='mytest' and table_name='users'),'123456' );rn2 rn3 select * from inf...
mysql应用过程中出现的主键重复的问题
在使用SSM框架时,插入记录的操作,出现了这样的问题nnDuplicate entry '0' for key 'PRIMARY'nn出现这个问题的原因是:主键的重复所引起的nn在Navicat for MySQL中nn1、选择你要操作的这张表;nn2、单击右键,选择:’设计表‘;nn3、设置自动增长,就行了nnnnn...
关于MySQL返回插入的自增主键的几种方法
本文主要讲解一下插入数据之后如何获取自增主键的方法:n1.通过SELECT LAST_INSERT_ID(),结果如下:n  LAST_INSERT_ID()n  2817nn  这个方法有一个弊端:如果你在插入数据的时候,别人刚好删除了你刚删除的数据,那么你虽然能获取到这个主键,但是没有任何意义了n  如果此时又有人同时插入一条数据,那么获取到的将是别人刚插入进去的那条数据的ID
mysql之为已经建好的表格添加id为自增主键
alter table TABLE_NAME add id int not null primary key Auto_increment如果想添加已经有了一列为主键,可以用:alter table TABLE_NAME add primary key(COL_NAME);如果想修改一列为主键,则需要先删除原来的主键:alter table TABLE_NAME drop primary key;再
mybatis 实现插入一条记录的同时,并返回主键自增策略是自增生成的主键ID
<insert id="insert" parameterType="com.mmall.pojo.Shipping" useGeneratedKeys="true" keyProperty="id">n insert into mmall_shipping (id, user_id, receiver_name, n receiver_phone, receiver_...
java实现向主键id自增的表中插入数据
问题nnn想要向mysql数据库中插入一条记录,因为设计的表时自动递增的,那么如果插入多条记录,每次都要设置主键的话工作量会很大,而且难免会有重复的主键,这时候就要使用强大的主键自增的功能了。nnnnn在没有使用主键自增时的代码是这样子的nnnnString insertSQL = "insert into user_t values(1, 'zzz', 'aaa', 20);";nstateme...
MySql 使用foreach标签 批量插入list中数据,主键自增,插入
方法一rnrnrn  rn    INSERT INTO TStudent(name,age) VALUES(#{item.name}, #{item.age})rn  rnrnrnrn方法二rnrnrn   INSERT INTO TStudent(name,age)VALUESrnrn  rn  (#{item.name}, #{item.age})rn  rnrnrnrnrn使用方法二时:r
给表添加记录时,在mapper.xml中配置sql,需要添加主键值的写法
SELECT SEQUENCE_1.NEXTVAL FROM DUALn n insert into SFY_BUILDn n BUILD_ID,n BUILD_PROJ_NAME,n BUILD_CONS_STAGE, n BRANCH_OFFICE, n TOTAL_UNIT, n BRANCH_UNIT, n SUPERVISOR_UNIT,
jeesite4框架 执行insert时主键自增长问题
我使用MySQL,数据库表主键设置为int型自增长,在jeesite框架执行insert时出问题,因为jeesite4主键默认是生成无序的18位数字,所以找到你该类的Dao.xml文件,将insert语句中的Id删掉,就可以解决了。...
insert插入新增记录后如何获取自增的主键id?
需求:由于主键是自增的int型,insert操作时服务端并未对其赋值,导致在insert时封装的对象其主键是null的,可是我们需要获取到主键nnnn使用环境:逆向的mybatisnnnn实现方式:修改mapper对象的insert方法,如下:nn <insert id="insert" useGeneratedKeys="true" keyProperty="examId...
MySQL中获取最后插入的自增ID值
写数据库程序的时候,经常会需要获取某个表中的最大序号数,rnrn在单线程的情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。但在多线程情况下,就不行了。在JAVA中,有下面几种方法:rnrn1. 使用getGeneratedKeysrn[code="java"]rnPreparedStatement ps = conn.prepareStatem...
mysql 关于清空表,删除表后自增主键的区别
主键设置为自动增长时,以下不同操作将使得主键初始值不一样。--删除表里面的数据,当你下次插入的时候,主键值,是根据你上次主键值的基础上递增的ndelete table DATABASEn--删除表的信息,包括初始化主键值,当你下次插入的时候,主键值就是最新的ntruncate table DATABASE...
MySQl 数据库已有数据的表添加自增 ID?
数据库导入数据后发现没有自增 id,因此就有了上面这个问题。n解决方法n1、给某一张表先增加一个字段,这里我们就以 node_table 这张表来举例,在数据库命令行输入下面指令 :nalter table node_table add id intnn2、更改 id 字段属性为自增属性,在数据库命令行输入下面指令 :nalter table `node_table` change id id i...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java写一个值班表 java设计一个值班表