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>

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

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

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


相关推荐

  • Java实现hello world代码

    Java实现hello world代码publicclassHelloWorld {    publicstaticvoidmain(String[]args){       System.out.println("HelloWorld");    }}

    2022年5月28日
    43
  • android之选择联系人并返回电话号码

    在跟着这个教程联系的时候,它所用到的选择联系人方式是自己从数据库里把联系人读取出来,然后用listview显示,选择后返回手机号码,这样做在点击选择联系人的时候,需要时间去加载,并且显示出来的联系人好像并不全,总之感觉不好,想通过调用系统联系人的方式选择,不用自己去处理界面。结果还不错:MainActivity:package jason.pickcontact;imp

    2022年3月11日
    30
  • sd0100 软件解惑

    sd0100 软件解惑今天用迅雷下点东西,发现速度最快的软件名为sd0100,当时觉得相当怪异,到google中国找了半天,也没查出是什么软件。后来进英文google,用英文找了下,发现蛛丝马迹,指向的竟然是5.9版的迅雷

    2022年7月2日
    22
  • stm32驱动摄像头ov7725_STM32F030F4

    stm32驱动摄像头ov7725_STM32F030F4stm320v7755

    2022年9月23日
    0
  • 快速使用 BERT 生成词向量:bert-as-service

    快速使用 BERT 生成词向量:bert-as-serviceBERT模型是一种NLP预训练技术,本文不介绍BERT的原理,主要关注如何快速上手使用BERT模型生成词向量用于下游任务。Google已经公开了TensorFlow版本的预训练模型和代码,可以用于生成词向量,但是还有更简单的方法:直接调用封装好的库bert-as-service。使用bert-as-service生成词向量bert-as-service是腾讯…

    2022年6月1日
    84
  • /etc/fstab文件的详解

    /etc/fstab文件的详解一、/etc/fstab文件的作用         磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。        系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。 二、挂载的限制  在说明这…

    2025年7月12日
    0

发表回复

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

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