INSERT IGNORE 与 INSERT INTO的区别

insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;

insert ignore into table(name)  select  name from table2

INSERT INTO有无数据都插入,如果主键则不插入

1.insert语句一次可以插入多组值,每组值用一对圆括号括起来,用逗号分隔,如下:

insert into `news`(title,body,time) values('www.111cn.net','body 1',now()),('title 2','body 2',now());
 
 
下面通过代码说明之间的区别,如下:

create table testtb(
id int not null primary key,
name varchar(50),
age int
);

insert into testtb(id,name,age)values(1,"www.111Cn.net",13);
select * from testtb;
insert ignore into testtb(id,name,age)values(1,"aa",13);
select * from testtb;//仍是1,“bb”,13,因为id是主键,出现主键重复但使用了ignore则错误被忽略
replace into testtb(id,name,age)values(1,"aa",12);
select * from testtb; //数据变为1,"aa",12

时间: 2024-10-26 22:58:06

INSERT IGNORE 与 INSERT INTO的区别的相关文章

mysql中INSERT IGNORE 与INSERT INTO,REPLACE INTO的区别

mysql中常用的三种插入数据的语句: insert into表示插入数据,数据库会检查主键,如果出现重复会报错: replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样: insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据: 下面通过代码说明之间的区别,如下: create table testtb( id int not null prima

MySQL的insert ignore与replace into的对比

关于replace 一句话:正常情况下表中有PRIMARY KEY或UNIQUE索引,新数据会替换老的数据.没有老数据则insert该数据. REPLACE的运行与INSERT很相像.只有一点除外,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除.使用REPLACE相当于对原有的数据(在PRIMARY KEY或UNIQUE索引下有值的数据)进行delete操作,然后再insert操作.为了能够使用REPLACE,您

Using INSERT IGNORE with MySQL to prevent duplicate key errors

An error will occur when inserting a new record in MySQL if the primary key specified in the insert query already exists. Using the "IGNORE" keyword prevents errors from occuring and other queries are still able to be run. Why? Although you shou

mssql insert into 和insert into select性能比较_MsSql

使用insert into table(field, ...)values(value, ...),insert into table(field, ...)values(value, ...)...的情况   使用insert into table(field, ...)select(value,...) union all select(value,...) union all select(value,...) ...的情况 我一次插入的数据是:1190条.用insert into所用的时

mssql insert into 和insert into select性能比较

使用insert into table(field, ...)values(value, ...),insert into table(field, ...)values(value, ...)...的情况 使用insert into table(field, ...)select(value,...) union all select(value,...) union all select(value,...) ...的情况 我一次插入的数据是:1190条.用insert into所用的时间在

INERT REPLACE UPDATE区别

insert into表示插入数据,数据库会检查主键,如果出现重复会报错:replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样: REPLACE也可以使用SET语句,替换update,UPDATE在没有匹配记录时什么都不做,而REPLACE在有重复记录时更新,在没有重复记录时插入 Java代码   REPLACE INTO users SET id = 123, na

sql点滴41—mysql常见sql语法

原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 添加带注释的列:alter table directory add index_url varchar(256) default null comment '章节书目链接' after di

SQL的开发建议(MySQL和Oracle)

MYSQL 开发建议 关于建表 1.尽量使用INNODB存储引擎. 2.建议使用UNSIGNED存储非负数值. 3.建议使用INT UNSIGNED存储IPV4. 4.强烈建议使用TINYINT来代替ENUM类型. 5.使用VARBINARY存储大小写敏感的变长字符串或二进制内容. 7.区分使用DATETIME和TIMESTAMP.存储年使用YEAR类型.存储日期使用DATE类型. 存储时间(精确到秒)建议使用TIMESTAMP类型. 8.将大字段.访问频率低的字段拆分到单独的表中存储,分离冷热

mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )_Mysql

INSERT语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INT