mysql批量新增数据_word修改内容目录怎么更新

mysql批量新增数据_word修改内容目录怎么更新建表CREATETABLE`t`(`id`int(11)NOTNULL,`age`int(11)DEFAULTNULL,`name`varchar(20)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf81.insertintovalues、inser…

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

Jetbrains全系列IDE稳定放心使用

目录

准备表和测试数据

insert into values、insert into select

replace into

insert into on duplicate key update

insert ignore into

总结


准备表和测试数据

CREATE TABLE `t` (
  `id` int(11) NOT NULL,
  `age` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `t_copy` (
  `id` int(11) NOT NULL,
  `age` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- t_copy 创建两条条数据
INSERT INTO t_copy VALUES (3, 30, 'c'),(4, 22, 'd');

insert into values、insert into select

INSERT INTO t 
VALUES
  (1, 20, 'a'),
  (2, 26, 'b');

-- 两张表的字段要一一对应
INSERT INTO t 
  SELECT id,age,name from t_copy where id < 10;

结果:

1  20  a
2  26  b
3  30  c
4  22  d

注:insert into values 或 insert into select批量插入时,都满足事务的原子性与一致性,一条出错整体都会回滚。在使用insert into select时,MySQL会对select的数据加S(读)锁,在事务较为复杂的场景下可能有死锁的风险,下篇博客会总结。 


replace into

replace into表示插入替换数据,当记录中有PrimaryKey,或者unique索引的话,如果数据库已经存在数据,则用新数据替换(先delete再insert),如果没有数据效果则和insert into一样。

REPLACE INTO t (id,age) VALUES (2, 15);

结果:

1  20  a
2  15  NULL
3  30  c
4  22  d


insert into on duplicate key update

 insert into on duplicate key update表示插入更新数据,当记录中有PrimaryKey,或者unique索引的话,如果数据库已经存在数据,则用新数据更新(update),如果没有数据效果则和insert into一样。

INSERT INTO t 
    (id, age) 
VALUES 
    (3, 28),
    (4, 29) 
ON DUPLICATE KEY UPDATE
    id = VALUES(id),
    age = VALUES(age);

结果:

1  20  a
2  15  NULL
3  28  c
4  29  d


insert ignore into

insert ignore into表示尽可能的忽略冲突,暴力插入。

INSERT IGNORE INTO t VALUES(1,30,'f'),(6,33,'o');

结果:

1  20  a
2  15  NULL
3  28  c
4  29  d
6  33  o

注:可以看到,虽然记录为1的数据会产生主键冲突,但insert ignore into会进行忽略,继续执行记录6的插入。另外除了唯一约束的冲突,类似于字段超出长度、类型不匹配等错误,insert into on duplicate key update与replace into都会整体失败,而insert ignore into不会失败,它对于类型不匹配且无法转化的提供了默认值,超出长度的按照最大长度进行了截取。


总结

  1. insert into values 或 insert into select批量插入时,都满足事务的原子性与一致性,但要注意insert into select的加锁问题。
  2. replace into与insert into on duplicate key update都可以实现批量的插入更新,具体是更新还是插入取决与记录中的pk或uk数据在表中是否存在。如果存在,前者是先delete后insert,后者是update。
  3. insert ignore into会忽略很多数据上的冲突与约束,平时很少使用。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • py2app打包「建议收藏」

    安装cndevOE运行时依赖的库:1.安装python运行环境下载python-2.5.1-macosx.dmg,安装。打开终端,输入python看到version是为2.5.1,安装成功。2.安装wxPython下载wxPython2.8-osx-unicode-2.8.9.1-universal-py2.5.dmg,安装。打开终端,输入python,在shell下输入:im

    2022年4月8日
    46
  • spring aop保存日志案例,附有项目下载链接[通俗易懂]

    spring aop保存日志案例,附有项目下载链接[通俗易懂]spring aop保存日志案例,附有项目下载链接

    2022年4月24日
    31
  • kali linux暴力破解wifi密码

    前期需要将kali安装好,并且有无线网卡(注意kali支持芯片为3070和1887L的网卡)打开kali,打开终端,使用命令ifconfig查看网卡信息,若有wlan0表示网卡连接成功![在这里插入图片描述](https://img-blog.csdnimg.cn/20200530193911516.png开启网卡监听模式airmon-ngstartwlan0iwconfig,网卡名为wlan0mon,说明开启成功airodump-ngwlan0mon扫描WiFi,按

    2022年4月13日
    80
  • ipfs是什么项目?filecoin怎么挖矿(filecoin的矿机有哪几家)

    如果考虑成为一个Filecoin矿工,首要需要清楚的是,挖矿收益主要来自三方面:区块打包奖励、数据存储收益、检索收益。1.区块奖励Filecoin网络拥有独特的经济设计,它可以使参与者之间的奖励保持一致,并奖励Filecoin矿工的有效工作。Filecoin经济的一个关键组成部分是区块奖励,这是对存储矿工的补贴,以提供可靠和有用的存储容量并维护Filecoin区块链。大多数区块链使用加密货币令牌奖励生产区块的矿工,以成功挖掘链中的新区块。Filecoin在这方面没有什么不同。Filecoin区块链通过连

    2022年4月14日
    49
  • 解析类型后加问号和双问号

    变量定义中类型后带一个问号,意思是这个数据类型是NullAble类型的。用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!例子: int?i=3等同于Nullab

    2021年12月27日
    47
  • screenflow怎么录屏_mac录屏软件 带声音

    screenflow怎么录屏_mac录屏软件 带声音ScreenFlow8forMac是一款集屏幕录制和视频编辑为一体的软件,全新版本screenflowformac中文版已经更新,新版本带来跟踪缩略图、手绘注释、可拆卸编辑时间线、快速旁白和配音添加、刻录字幕等新功能,还有更多改进,赶紧来体验一下吧!ScreenFlow8forMac官方介绍ScreenFlow®是专为macOS设计的屡获殊荣的屏幕录制和视频编辑软件。凭借高质量的屏幕,视频,音频和iOS捕捉,极其强大的编辑功能以及新的StockMediaLibrary选项,

    2022年9月24日
    2

发表回复

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

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