百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

MySQL INSERT 有哪4种形态? mysql+insert+有哪4种形态?举例说明

wptr33 2024-11-08 15:02 25 浏览

INSERT语句是最常见的SQL语句之一,MySQL中INSERT有其他形态的插入数据方式。下面了解一下mysql中常用的四种插入数据的语句:

INSERT INTO

1.insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错;除了这个之外还有一些配合的参数.

语法如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [(col_name [, col_name] ...)]
    {VALUES | VALUE} (value_list) [, (value_list)] ...
    [ON DUPLICATE KEY UPDATE assignment_list]
  • DELAYED:是立刻返回一个标识,告诉上层程序,数据已经插入了,当表没有被其它线程使用时,此行被插入,真实插入时间就不可控了。所以这样的写法对数据的安全性是没有保障的。 延迟插入和替换在MySQL 5.6中是不推荐的。在MySQL 5.7,MySQL 8.0中,不支持延迟。服务器识别但忽略DELAYED关键字,将插入处理为非延迟插入,并生成erwarnlegacysyntaxconvert警告(“不再支持延迟插入”)。语句被转换为INSERT”)。DELAYED关键字计划在未来的版本中删除。
  • LOW_PRIORITY:插入的执行将被延迟,直到没有其他客户端从表中读取数据。这包括在现有客户端正在读取时以及INSERT LOWPRIORITY语句正在等待时开始读取的其他客户端。因此,对于发出INSERT LOWPRIORITY语句的客户机,可能要等待很长时间。 LOWPRIORITY只影响只使用表级锁的存储引擎(如MyISAM、内存和合并)。 LOWPRIORITY通常不应该用于MyISAM表,因为这样做会禁用并发插入
  • HIGH_PRIORITY:如果指定了HIGHPRIORITY,同时服务器采用–low-priority-updates选项启动,则HIGHPRIORITY将覆盖–low-priority-updates选项。这么做还会导 致同时进行的插入被取消。 【 lowpriorityupdates:如果设置为1,所有插入、更新、删除和锁表写语句都将等待,直到受影响的表上没有未决的选择或锁表读取。使用{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY…仅降低一个查询的优先级。这个变量只影响只使用表级锁的存储引擎(如MyISAM、MEMORY和MERGE)mysql的merge引擎类型允许把许多结构相同的表合并为一个表,Merge表有点类似于视图。】
  • IGNORE:insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据,主键和唯一键为基准;
mysql> insert ignore  tinsert(id,name) values(3,'D');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1062 | Duplicate entry '3' for key 'PRIMARY' |
+---------+------+---------------------------------------+

INSERT INTO SELECT

把一张表的字段数据导入到另一张表中,执行语句会把整个数据会打包成一个事务执行。

注意:当从同一个表中选择和插入时,MySQL创建一个内部临时表来保存SELECT中的行,然后将这些行插入到目标表中。但是,不能使用INSERT INTO t…选择……当t是临时表时,从t开始,因为临时表不能在同一语句中被引用两次

REPLACE INTO

replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中,

  1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
  2. 否则,直接插入新数据;
  3. REPLACE,您必须同时拥有表的INSERT,UPDATE,DELETE权限。

语法:

REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [(col_name [, col_name] ...)]
    {VALUES | VALUE} (value_list) [, (value_list)] ...

注意:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

1.下面看看binlog 解析:主键和唯一键同事存在的时候语句不一样。

主键:是进行update操作。

主键+唯一键:delete+insert操作

2.但对于同一个数据所有行都一样的时候replace into就不会进行更新操作。

INSERT INTO ON DUMPLICATE KEY UPDATE

...

? 接下来内容请访问原文(https://www.modb.pro/db/28662?YYF)进行查看~

更多数据库相关内容,可访问墨天轮(https://www.modb.pro/?YYF)进行浏览。


相关推荐

Linux高性能服务器设计

C10K和C10M计算机领域的很多技术都是需求推动的,上世纪90年代,由于互联网的飞速发展,网络服务器无法支撑快速增长的用户规模。1999年,DanKegel提出了著名的C10问题:一台服务器上同时...

独立游戏开发者常犯的十大错误

...

学C了一头雾水该咋办?

学C了一头雾水该怎么办?最简单的方法就是你再学一遍呗。俗话说熟能生巧,铁杵也能磨成针。但是一味的为学而学,这个好像没什么卵用。为什么学了还是一头雾水,重点就在这,找出为什么会这个样子?1、概念理解不深...

C++基础语法梳理:inline 内联函数!虚函数可以是内联函数吗?

上节我们分析了C++基础语法的const,static以及this指针,那么这节内容我们来看一下inline内联函数吧!inline内联函数...

C语言实战小游戏:井字棋(三子棋)大战!文内含有源码

井字棋是黑白棋的一种。井字棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、三子旗等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时...

C++语言到底是不是C语言的超集之一

C与C++两个关系亲密的编程语言,它们本质上是两中语言,只是C++语言设计时要求尽可能的兼容C语言特性,因此C语言中99%以上的功能都可以使用C++完成。本文探讨那些存在于C语言中的特性,但是在C++...

在C++中,如何避免出现Bug?

C++中的主要问题之一是存在大量行为未定义或对程序员来说意外的构造。我们在使用静态分析器检查各种项目时经常会遇到这些问题。但正如我们所知,最佳做法是在编译阶段尽早检测错误。让我们来看看现代C++中的一...

ESL-通过事件控制FreeSWITCH

通过事件提供的最底层控制机制,允许我们有效地利用工具箱,适时选择使用其中的单个工具。FreeSWITCH是一个核心交换与混合矩阵,它周围有几十个模块提供各种功能特性。我们完全控制了所有的即时信息,这些...

物理老师教你学C++语言(中篇)

一、条件语句与实验判断...

C语言入门指南

当然!以下是关于C语言入门编程的基础介绍和入门建议,希望能帮你顺利起步:C语言入门指南...

C++选择结构,让程序自动进行决策

什么是选择结构?正常的程序都是从上至下顺序执行,这就是顺序结构...

C++特性使用建议

1.引用参数使用引用替代指针且所有不变的引用参数必须加上const。在C语言中,如果函数需要修改变量的值,参数必须为指针,如...

C++程序员学习Zig指南(中篇)

1.复合数据类型结构体与方法的对比C++类:...

研一自学C++啃得动吗?

研一自学C++啃得动吗?在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C++的资料从专业入门到高级教程」,点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!个人...

C++关键字介绍

下表列出了C++中的常用关键字,这些关键字不能作为变量名或其他标识符名称。1、autoC++11的auto用于表示变量的自动类型推断。即在声明变量的时候,根据变量初始值的类型自动为此变量选择匹配的...