Laravel 批量新增或更新方法 upsert 详解 - 风风资源网
  • 首页
  • 网站源码
  • 软件仓库
  • 技术分享
    • 代码教程
  • 主题插件
  • 资源资讯
  • 值得一看
    • 写真套图

导航菜单
  • 首页
  • 网站源码
  • 软件仓库
  • 技术分享
    • 代码教程
  • 主题插件
  • 资源资讯
  • 值得一看
    • 写真套图

Laravel 批量新增或更新方法 upsert 详解

2025/12/2 小玖云  代码教程 75 0

Laravel 8 起新增了一个upsert方法,用来实现批量更新或新增,如果你想在单个查询中执行多个「新增或更新」,那么应该使用 upsert 方法。该方法的第一个参数包含要插入或更新的值,而第二个参数列出了在关联表中唯一标识记录的列。该方法的第三个也是最后一个参数是一个列数组,如果数据库中已经存在匹配的记录,则应该更新这些列。如果在模型上启用了时间戳,upsert 方法将自动设置 created_at 和 updated_at 时间戳:

Flight::upsert([
    ['departure' => 'Oakland', 'destination' => 'San Diego', 'price' => 99],
    ['departure' => 'Chicago', 'destination' => 'New York', 'price' => 150]
], ['departure', 'destination'], ['price']);

注意
除 SQL Server 外,其他所有数据库都要求 upsert 方法的第二个参数中的列具有主键索引或唯一索引。 此外,MySQL 数据库驱动程序忽略了 upsert 方法的第二个参数,总是使用表的主键索引和唯一索引来检测现有的记录

Laravel 8 之前的版本,如果我们想要批量更新或新增,只能通过循环+updateOrCreate的方式,每次循环都要请求两次数据库,但是有了upsert我们一共只需要执行两次数据库操作。

另外要说明的是,第二个参数数组是用来标识唯一记录的,可以使用主键索引,比如:自增id,也可以使用唯一索引。比如下面的代码:

Record::upsert($data,['user_id','date']);

必须要在数据库上设置 user_id + date 的唯一索引才可以,否则就会不断的执行新增操作。



点赞:0 分享 收藏

上一篇
移动硬盘没有新建选项不能新建文件夹或文件(写保护)的解决办法
下一篇
yum提示Error: rpmdb open failed错误的解决办法
作者头像 作者名称 作者性别
小玖云
联系作者 作者主页

评论列表

取消回复

    •  
      Login

      小玖云

      站长 主页
      用户中心
      评论管理
      退出登陆
      • 204文章
      • 1评论
      • 2微语
  • 最新文章

      • 「艾西Aiwest」23套 COS作品写真合集[持续更新],元气少女精华作品
        • Isle-Editor (岛屿编辑器) - 免费开源 Web 富文本编辑器,也支持 Notion 块编辑、MarkDown 语法,官方支持 Vue3 开箱即用
          • Photor - 免费好用的截图美化在线工具,网页/软件等屏幕截图美化我一直在用它
            • Inspira UI - 免费开源、充满活力的 3D 视觉炸裂级动画组件库,支持 Vue3 集成,兼容 Nuxt.js
              • SLEA AI - 免费的 Logo 在线生成器,AI 生成的 Logo 水平吊打淘宝几千元的设计外包
                • WordPress屏蔽垃圾英文评论的方法
  • 热门文章

    • 全新二次元聚合短视频解析去水印系统源码 自适应双端
    • 油耗计算器费用记录查询HTML源码
    • EMLOG博客- 百度提交自动推送,判断文章是否收录
    • 视频打赏写真系统网站源码
    • 从 "礼拜鞋" 到全球爆款:惠东女鞋用 40 年走出的逆袭路
    • 淘宝扭蛋机盲盒抽中初音未来手办!这波欧气直接让二次元狂喜
  • 分类

    • 源码分享
    • 软件分享
    • 技术分享
    • 主题插件
    • 资源资讯
    • 值得一看
  • 网站统计 I 当前在线:1人

    • 本站管理:1位
    • 用户总数:1位
    • 置顶文章:0篇
    • 日志总数:204篇
    • 微语总数:2条
    • 评论总数:1条
    • 标签总数:471条
    • 页面总数:2页
    • 分类总数:8个
    • 链接总数:4条
    • 运行天数:0天
    • 最后更新:1月2日
  • Copyright © 2026风风资源网 程序:Emlog Pro powered by 风风资源网
    • 首页
    • Q 群
    • 搜索
    • 主题

    大家都在搜

    • B站录播软件
    • 人声伴奏分离
    • Inspira UI
    • 二维码生成器源码
    • 富文本编辑器
    • cosplay
    • 经典游戏植物大战僵尸
    • 植物大战僵尸老版本
    • 卡密系统
    • 文本字数统计
    • Duolingo多邻国专业版
    • 图标下载网站
    • ZFAKA自动发卡平台
    • SLEA AI
    • Duolingo多邻国
    • cos图集
    • 
    • 