mysql insert or replace_dbinsert

mysql insert or replace_dbinsert通常情况下insert语句的写法为insertintotablenamevalues(a,b);区别之处:1oracle中使用如下语句1.1方式一该方式特点是能插如值是固定的多条数据insertallintotest01values(1,’a’)intotest01values(2,’b’)select1fromdual;–这一行不…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

通常情况下insert语句的写法为 insert into tablename values (a,b);

区别之处:

1oracle中使用如下语句

1.1方式一

该方式特点是能插如值是固定的多条数据
insert all
 
into test01 values(1,’a’)
 
into test01 values(2,’b’)
 
select 1 from dual; –这一行不能去掉

1.2方式二

该方式特点是:能插入一些值不是固定的多条数据.可以吧其他表中的数据批量保存到这张表中来
insert into test01 (id,line1)

       select id,line1 from test02;

1.3方式三

放在begin end里面如下:

begin
insert into test01 (id,line1) values (01,’line01′);
insert into test01 (id,line1) values (01,’line01′);
insert into test01 (id,line1) values (01,’line01′);
insert into test01 (id,line1) values (01,’line01′);
end;

这个可以在Mybatis的sql中优化为

<insert id=”insertRoleInfoList”  parameterType=”java.util.Map”>
 
   <foreach collection=”roleInfoList” item=”userRoleInfo” index=”index” open=”begin” close=”;end;” separator=”;”>
      insert into base_role_demo (roleid,rolecode,roledesc,remark,recordercode,recorderdesc,usecorpcode,usecorpdesc)
      values(ROLEDEMO_CORP_SEQ.Nextval,#{userRoleInfo.rolecode},#{userRoleInfo.roledesc},#{userRoleInfo.remark},
      #{recordercode},#{recorderdesc},#{userRoleInfo.usecorpcode},#{userRoleInfo.usecorpdesc})
    </foreach>
  
  </insert>

2mysql使用如下语句

insert into test01 (id,line1) values (01,’line01′),(02,’line02′);

这种连写的方式可以同时添加多条

接下来说一说关于foreach 语句的区别

主要不同点在于foreach标签内separator属性的设置问题:

  1. separator设置为”,”分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) ,(v4,v5,v6) ,…
  2. separator设置为”union all”分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) union all (v4,v5,v6) union all…

oracle中:

<insert id=”inserData” parameterType=”com.test.aaa.Bac”>
    insert into table_name (name, adress, age) values <foreach collection=”list” item=”item” index=”index” separator=”union all”>
            (select #{item.name},
                    #{item.adress},
                    #{item.age}
                from dual   )
        </foreach>
</insert>

MySQL中:

<insert id=”inserData” parameterType=”com.test.aaa.Bac”>
    insert into table_name (name, adress, age)
        values
        <foreach collection=”list” item=”item” index=”index” separator=”,”>
            (   #{item.name},  #{item.adress},  #{item.age}  )
        </foreach>
</insert>

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193957.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm怎么用啊_我不想用失去来教会你

    pycharm怎么用啊_我不想用失去来教会你一、PyCharm设置中文(无需汉化包)1、点击左上角的File选项2、选择Settings选项3、点击Plugins选项,等待一会儿,页面出来比较慢。

  • matlab中plot函数的功能及用法_plot绘制什么图

    matlab中plot函数的功能及用法_plot绘制什么图使用plot绘制二维图像本文转自http://blog.sina.com.cn/s/blog_d8f783c90102woqb.html以及https://blog.csdn.net/alvern_zhang/article/details/51153058MATLAB中plot函数常常被用于绘制各种二维图像,其用法也是多种多样,本文仅介绍plot函数的基本用法——使用plot函数绘制二维点图和线…

    2022年10月16日
  • 互联网协议

    互联网协议

    2021年10月10日
  • qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器

    qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器为什么要是用多线程?多线程的使用主要是为了处理比较耗时的过程。多线程的实现可以通过两种方式实现分别是:1.继承QThread实现多线程2.继承QObject实现多线程(由于继承QObject的多线程实现方法更加灵活,Qt官方推荐使用该方法实现多线程)。这里将采用第二种方式实现多线程多线程实现过程1.创建一个继承于QObject的自定义线程类,用来处理比较耗时的功能。相关函数:voidsetFla…

  • golang2021激活码3月最新在线激活「建议收藏」

    golang2021激活码3月最新在线激活,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 操作系统期末总复习(题库)[通俗易懂]

    操作系统期末总复习(题库)[通俗易懂]问答题什么是操作系统,主要功能有哪些?操作系统:计算机最基本最重要的基础性系统软件,可以使计算机系统能协调、高效和可靠地进行工作主要功能:处理器管理、存储器管理、设备管理、文件管理、作业管理等功能模块什么是微内核技术,主要有哪些功能?微内核技术把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。主要功能:进程(线程)管理、低级存储器管理、中断和陷入处理等功能。简述进程的基本状态及状态之间的转换

发表回复

您的电子邮箱地址不会被公开。

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