Mysql 语句 insert into 与 replace into 区别
【】insert into 与 replace into 区别
replace into 的运行与insert into 很相似。不同点:
若表中的一个旧记录与一个用于PRIMARY KEY 或 一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
尤其注意:
除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE INTO 语句没有意义。
因为没有索引被用于确定是否新行复制了其它行。
实例如下:
(1)创建表
-- [1]drop
DROP TABLE `students`; -- [2]create
CREATE TABLE `students` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`sName` VARCHAR (10) NOT NULL,
`sAge` INT (2) UNSIGNED ZEROFILL NOT NULL,
`sAddr` VARCHAR (20) DEFAULT NULL,
`sGrade` INT (2) DEFAULT NULL,
`sStuId` INT (8) DEFAULT NULL,
`sSex` INT (1) UNSIGNED DEFAULT NULL
) ENGINE = INNODB;
(2)插入insert into
SQL语句:
INSERT INTO students(id, sName, sAge, sAddr, sGrade, sStuId, sSex)
VALUES (1, 'wangchao', 8, 'heyang', 1, 1801111, 0);
执行结果:

查询数据:

(3)插入replace into
SQL语句:
REPLACE INTO students(id, sName, sAge, sAddr, sGrade, sStuId, sSex)
VALUES (1, 'suntao', 9, 'weinan', 3, 1803110, 1);
执行结果:

注意:共2行受影响,一行被删除,一行被添加。同时具有delete、insert操作。
查询数据:

(4)insert into on duplicate key update
SQL语句:
INSERT INTO students(id, sName, sAge, sAddr, sGrade, sStuId, sSex)
VALUES (1, 'wangchao', 8, 'heyang', 1, 1801111, 0)
ON DUPLICATE KEY UPDATE
sName = 'wangchao',
sAge = 8,
sAddr = 'heyang',
sGrade = 1,
sStuId = 1801111,
sSex = 0;
执行结果:

注意:共2行受影响,原来行被删除,新的一行被添加。但是主键值id为1保持不变。
查询数据:

Good Good Study,Day Day Up.
顺序 选择 循环 总结
Mysql 语句 insert into 与 replace into 区别的更多相关文章
- MySQL的insert ignore与replace into不同
以前从来没有接触过replace into这个语法,但是却看到很多人都在使用这个语法,并且应用在很多生产环境中,于是我也去学习了一下repalce into的用法. 关于replace 一句话:正常情 ...
- mysql语句insert后取到返回的主键id
Q: 有时候做类似接口里的数据订正,需要取到insert语句返回的id主键,在程序里通过对象返回好取,但是写sql怎么取到呢? A: 用select @@identity得到上一次插入记录时自动 ...
- MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下 MySQL数据库insert和update语句引:用于操作数 ...
- 转载:MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
转自:http://www.jb51.net/article/39199.htm 本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍, ...
- MySQL的insert语句的区别
SQL Server: insert into tb_articleType (articleType_name,articleType_info) values ("test", ...
- mysql语句与sql语句的基本区别
. MySQL支持enum和set类型,SQL Server不支持: . MySQL不支持nchar.nvarchar.ntext类型: . MySQL数据库的递增语句是AUTO_INCREMENT, ...
- MySQL中的insert ignore into, replace into等的一些用法小结(转)
MySQL中的insert ignore into, replace into等的一些用法总结(转) 在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: ...
- MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项 DML DDL DQL mysql面试题 truncate与delete的区别
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...
- 老李分享:MySql的insert语句的性能优化方案
老李分享:MySql的insert语句的性能优化方案 性能优化一直是测试人员比较感兴趣的内容,poptest在培训学员的时候也加大了性能测试调优的方面的内容,而性能优化需要经验的积累,经验的积累依 ...
随机推荐
- LeetCode 1062. Longest Repeating Substring
原题链接在这里:https://leetcode.com/problems/longest-repeating-substring/ 题目: Given a string S, find out th ...
- 第04组alpha冲刺(4/4)
队名:斗地组 组长博客:地址 作业博客:Alpha冲刺(4/4) 各组员情况 林涛(组长) 过去两天完成了哪些任务: 1.分配展示任务 2.收集各个组员的进度 3.写博客 展示GitHub当日代码/文 ...
- libvirt原理
引用原文: https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/80142155 libvirt是目前使用最为广泛的针对KVM虚拟机进 ...
- linux高性能服务器编程 (六) --高级I/O函数
第六章 高级I/O函数 Linux提供了很多高级的I/O函数,它不是基础的I/O函数(open/read) 1.创建文件描述符的函数比如:pipe.dup/dup2函数 2.读写数据的函数比如:rea ...
- Pytorch中ndarray tensor list互转
1.ndarray->tensor : b=torch.from_numpy(a) 2.tensor->ndarray: b=a.numpy() ''' 但这么写会报错-- Runtime ...
- 冰多多团队-第三次Scrum会议
冰多多团队-第三次Scrum会议 会议基本情况 会议时间:4月9日 21:30 - 21:45 会议地点:新主楼F座2楼沙发休息处 工作情况 团队成员 已完成任务 待完成任务 zpj 接入Action ...
- asp.net core session使用
一.配置回话状态 Microsoft.AspNetCore.App metapackage 中包含的 Microsoft.AspNetCore.Session 包提供中间件来管理会话状态. 若要启用会 ...
- Unity2D游戏开发之保卫萝卜
保卫萝卜是2D塔防游戏里边的一个经典案例,这次去开发这个游戏,我们会尽力去实现和原版一样的功能,做好我们可以处理好的每一个游戏细节(比如塔攻击的集火目标优先攻击,与自动搜索,格子的三种处理逻辑,UI的 ...
- 韦东山视频第3课第2节_JNI_C调用JAVA_P【学习笔记】
C调JAVA方法主要步骤如下: 一.C代码调用java的静态方法 Hello.java public class Hello{ public static void main(String args[ ...
- Sketch2Code - Transform sketches into HTML using AI
Sketch2Code - Transform sketches into HTML using AI https://sketch2code.azurewebsites.net/generated- ...