mysql insert into as_mysql insert into select使用方法详解

mysql insert into as_mysql insert into select使用方法详解mysqlinsertintoselect使用方法详解2017-11-2215:47我们先来看看mysqlinsertintoselect的语法规则。INSERT[LOW_PRIORITY|HIGH_PRIORITY][IGNORE][INTO]tbl_name[(col_name[,col_name]…)]SELECT…[ONDUPLICATEKEY…

大家好,又见面了,我是你们的朋友全栈君。

mysql insert into select使用方法详解2017-11-22 15:47

我们先来看看mysql insert into select的语法规则。

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name

[(col_name [, col_name] …)]

SELECT …

[ON DUPLICATE KEY UPDATE assignment_list]

value:

{expr | DEFAULT}

assignment:

col_name = value

assignment_list:

assignment [, assignment] …

使用INSERT INTO…SELECT,您可以根据SELECT语句的结果快速地将多行插入到表中,该语句可以从一个或多个表中进行选择。

例如:

INSERT INTO tbl_temp2 (fld_id)

SELECT tbl_temp1.fld_order_id

FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

以下条件适用于 INSERT INTO… SELECT声明:

指定IGNORE忽略会导致重复键违规的行。

DELAYED被忽略INSERT … SELECT。

该INSERT语句的目标表可能出现在查询部分的FROM子句中SELECT。但是,不能插入到表中并从子查询中的同一个表中进行选择。

在从同一个表中选择并插入时,MySQL创建一个内部临时表来存放来自这些表的行SELECT,然后将这些行插入到目标表中。但是,不能使用INSERT INTO t … SELECT … FROM t何时 t是TEMPORARY 表,因为TEMPORARY表不能在同一语句中引用两次。

AUTO_INCREMENT 列照常工作。

为确保二进制日志可用于重新创建原始表,MySQL不允许并发插入INSERT … SELECT语句。

为避免SELECT在INSERT引用同一个表时引用不明确的列引用问题 , 请为该SELECT部分中使用的每个表提供唯一的别名,并使用适当的别名限定该部分中的列名。

SELECT没有ORDER BY子句的语句返回行 的顺序是不确定的。这意味着,在使用复制时,不能保证这样的SELECT返回在主服务器和从服务器上的顺序相同,这可能会导致它们之间的不一致。

为防止发生这种情况,请始终INSERT… SELECT使用ORDER BY 在主服务器和从服务器上生成相同行顺序的子句编写要复制的语句。

由于这个问题,在MySQL 5.5.18中, INSERT…SELECT ON DUPLICATE KEY UPDATE和INSERT IGNORE… SELECT语句被标记为不安全的基于语句的复制。

这些语句在使用基于语句的模式时会在错误日志中产生警告,并在使用MIXED模式时使用基于行的格式写入二进制日志 。(错误#11758262,错误#50439)

INSERT INTO SELECT影响使用诸如MyISAM使用表级锁的存储引擎的分区表 的语句 会锁定源表和目标表的所有分区。对于使用存储引擎(如InnoDB使用行级锁定)的表,不会发生这种情况 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159642.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos系统服务优化SHELL脚本

    centos系统服务优化SHELL脚本

    2021年8月16日
    60
  • linux下svn命令使用大全

    最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1、将文件checkout到本地目录 svncheckoutpath(path是服务器 上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco2、往版本库中添加新的文件 svnaddfile例如:svn…

    2022年4月11日
    33
  • 决策树原理解析_解析的原理

    决策树原理解析_解析的原理决策树原理解析1.决策树算法以及基本流程决策树是基于树结构进行决策的,其机制就是通过判定每个属性分类的纯度来进行自上而下决策分类决策树包含根结点,内部结点,叶结点;根结点和内部结点对应与分类的属性(也就是分类的基准),叶结点对应决策结果(也就是纯度很高且不需要继续分裂的类别);从根结点到某一个叶结点的路径便是当前叶结点对应类的整个决策过程,下面来看决策树的算法流程:可以看到决…

    2025年10月6日
    5
  • 计算机网络ip地址划分方法,ip地址怎么划分 ip地址划分方法【图文】

    计算机网络ip地址划分方法,ip地址怎么划分 ip地址划分方法【图文】IP地址指的是互联网的协议地址,它的全称为IPAddress,IP地址是IP协议当中的一种地址格式,互联网上的任意一个网络以及它们的主机使用的逻辑地址都是由IP地址分配的,那么你知道IP地址是怎样进行划分的吗?下面我们就一起来看看IP地址的划分以及IP地址的查询方法吧。一、IP地址的划分:IP地址一个包括五大类,分别是A类IP地址、B类IP地址、C类IP地址、D类IP地址和E类IP地址。其中A类…

    2022年6月9日
    34
  • windows route add添加静态路由_centos route add

    windows route add添加静态路由_centos route addWindowsrouteaddcommandfailed出现此错误需要管理员安装openvpn和管理员运行vpngui

    2022年8月11日
    14
  • Yarn安装配置(vsftpd安装配置)

    Yarn介绍:Yarn是facebook发布的一款取代npm的包管理工具。yarn的特点:速度超快。 Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。 超级安全,在执行代码之前,Yarn会通过算法校验每个安装包的完整性。 超级可靠,使用详细、简洁的锁文件格式和明确的安装算法,Yarn能够保证在不同系统上…

    2022年4月15日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号