当前位置: 首页 > news >正文

做php网站需要什么软件开发seo优化招聘

做php网站需要什么软件开发,seo优化招聘,微网站如何做微信支付宝,网站做动态和静态哪个贵ON DUPLICATE KEY UPDATE 是 MySQL 中的一个 SQL 语句中的子句,主要用于在执行 INSERT 操作时处理可能出现的重复键值冲突。当尝试插入的记录导致唯一索引或主键约束冲突时(即试图插入的记录的键值已经存在于表中),此子句会触发一…

ON DUPLICATE KEY UPDATE 是 MySQL 中的一个 SQL 语句中的子句,主要用于在执行 INSERT 操作时处理可能出现的重复键值冲突。当尝试插入的记录导致唯一索引或主键约束冲突时(即试图插入的记录的键值已经存在于表中),此子句会触发一个更新操作,而不是抛出错误。

官方文档:https://dev.mysql.com/doc/refman/8.4/en/insert-on-duplicate.html

基本语法

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATEcolumn1 = value1,column2 = value2,...;

ON DUPLICATE KEY UPDATE子句处理逻辑

语句是根据唯一索引判断记录是否重复的。当执行插入操作时,如果唯一键不冲突(表中不存在记录),则执行插入操作;如果遇到唯一键冲突(表中存在记录),则会执行更新操作,使用给定的新值来更新冲突行中的列。

示例

假设我们有一个用户表 users,包含 id(主键)、username(用户名,唯一)和 email 三个字段。现在我们要插入或更新一条用户记录,如果用户名已经存在,则只更新用户的邮箱地址。

表结构如下:

CREATE TABLE `users` (`id` INT AUTO_INCREMENT PRIMARY KEY,`username` VARCHAR(255) UNIQUE NOT NULL,`email` VARCHAR(255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

不存在记录,插入的情况

使用insert into插入已有的username,可以看到会报错

 使用ON DUPLICATE KEY UPDATE 子句插入已有的username,没有报错执行成功

总结:在上面这个例子中,如果尝试插入的用户名 '杜甫' 已经存在于表中,由于 username 字段设置了唯一约束,这将触发 ON DUPLICATE KEY UPDATE 子句。然后,这条 SQL 语句不会插入新的记录,而是执行更新操作,将该用户名对应的邮箱地址更新为 'libai@163.com'。如果用户名不存在,则正常插入新记录。

可能看到这里就会有人问了那么为什么不使用update呢,简单的来说不都是更新数据吗?

使用 ON DUPLICATE KEY UPDATE 与直接使用 UPDATE 语句的主要区别在于处理数据插入和更新的策略和目的。

下面是选择 ON DUPLICATE KEY UPDATE 而不直接使用 UPDATE 的几个主要原因:

  1. 同时处理插入与更新ON DUPLICATE KEY UPDATE 允许在一个操作中同时尝试插入新记录和更新现有记录。如果记录不存在,就插入新记录;如果存在(根据唯一索引或主键判断),则更新记录。这样可以在不确定记录是否存在的情况下,通过一次操作完成“插入或更新”,简化逻辑和代码。

  2. 减少查询开销:相比于先执行查询判断记录是否存在,再根据结果决定执行 INSERTUPDATEON DUPLICATE KEY UPDATE 直接在数据库层面处理,减少了额外的查询请求,降低了网络和计算开销。

  3. 原子性操作:在事务中使用时,ON DUPLICATE KEY UPDATE 作为一个整体操作,要么全部成功,要么全部失败,保证了数据操作的原子性,这对于维护数据一致性非常重要。

  4. 避免并发冲突:在高并发环境下,先查询后更新可能会遇到“丢失更新”的问题。而 ON DUPLICATE KEY UPDATE 通过数据库的内置机制处理冲突,有助于减少这类并发问题。

  5. 简化逻辑:对于批量数据处理,特别是导入大量数据时,使用 ON DUPLICATE KEY UPDATE 可以显著简化代码逻辑,避免编写复杂的循环判断逻辑。

总结ON DUPLICATE KEY UPDATE 提供了一种高效、简洁的方式来处理那些在插入数据时可能遇到的重复记录问题,特别适用于那些需要“如果存在则更新,否则插入”的场景,而直接使用 UPDATE 则更适合于确定记录已经存在并且需要修改的情况。

当然还有ON DUPLICATE KEY UPDATE 子句和 REPLACE INTO 语句的区别会在下一篇文章中介绍

使用 ON DUPLICATE KEY UPDATE 子句的场景及优缺点

使用场景优点缺点
数据去重与更新自动处理冲突,减少编程逻辑对于大量并发可能产生锁竞争,影响性能
数据同步简化数据同步流程,避免手动检查更新逻辑需精确设计,以免误更新非冲突字段
统计计数有效累加计数,避免重复记录需要确保更新逻辑正确,避免数据不一致
确保数据一致支持事务处理,增强数据完整性对于复杂更新逻辑处理能力有限
简化逻辑一行命令完成“插入或更新”,代码简洁对唯一性约束依赖性强,表设计需预先规划


文章转载自:
http://iberian.crhd.cn
http://admixture.crhd.cn
http://eyeground.crhd.cn
http://doctrinist.crhd.cn
http://fenderboard.crhd.cn
http://underslept.crhd.cn
http://jeopardise.crhd.cn
http://insuppressive.crhd.cn
http://leptodactyl.crhd.cn
http://osteochondritis.crhd.cn
http://flawless.crhd.cn
http://frenglish.crhd.cn
http://elucubrate.crhd.cn
http://outdoorsman.crhd.cn
http://misregister.crhd.cn
http://mayoralty.crhd.cn
http://kanggye.crhd.cn
http://agleam.crhd.cn
http://pogonia.crhd.cn
http://teleosaurus.crhd.cn
http://incooperative.crhd.cn
http://cinnabar.crhd.cn
http://phosphorise.crhd.cn
http://byliner.crhd.cn
http://paramoecium.crhd.cn
http://hoggish.crhd.cn
http://sagaman.crhd.cn
http://spirocheta.crhd.cn
http://bimillennial.crhd.cn
http://snag.crhd.cn
http://quasimodo.crhd.cn
http://scythe.crhd.cn
http://order.crhd.cn
http://pyrrhotine.crhd.cn
http://italophile.crhd.cn
http://xylophone.crhd.cn
http://retrosternal.crhd.cn
http://primus.crhd.cn
http://rosebay.crhd.cn
http://synoecize.crhd.cn
http://stingaree.crhd.cn
http://leaver.crhd.cn
http://copperize.crhd.cn
http://moomin.crhd.cn
http://hereditarian.crhd.cn
http://lawyerly.crhd.cn
http://venomously.crhd.cn
http://nonobjectivity.crhd.cn
http://yakka.crhd.cn
http://nipa.crhd.cn
http://wolfberry.crhd.cn
http://exemplar.crhd.cn
http://farther.crhd.cn
http://finny.crhd.cn
http://detract.crhd.cn
http://residenter.crhd.cn
http://obstetrics.crhd.cn
http://leavings.crhd.cn
http://nucleus.crhd.cn
http://macrophysics.crhd.cn
http://agonize.crhd.cn
http://sphygmus.crhd.cn
http://gallimaufry.crhd.cn
http://sanctimonious.crhd.cn
http://prosocial.crhd.cn
http://mitch.crhd.cn
http://magnisonant.crhd.cn
http://ninebark.crhd.cn
http://maytime.crhd.cn
http://unglove.crhd.cn
http://carshalton.crhd.cn
http://exophagy.crhd.cn
http://rushlight.crhd.cn
http://nauplii.crhd.cn
http://alma.crhd.cn
http://raia.crhd.cn
http://triennially.crhd.cn
http://archaeomagnetism.crhd.cn
http://argentic.crhd.cn
http://icac.crhd.cn
http://transnature.crhd.cn
http://rosa.crhd.cn
http://qishm.crhd.cn
http://impartial.crhd.cn
http://paradigmatic.crhd.cn
http://ferrozirconium.crhd.cn
http://nicety.crhd.cn
http://agronomics.crhd.cn
http://supergraphics.crhd.cn
http://contusion.crhd.cn
http://crissum.crhd.cn
http://cool.crhd.cn
http://parpen.crhd.cn
http://hoarder.crhd.cn
http://resolutely.crhd.cn
http://trainbearer.crhd.cn
http://enviable.crhd.cn
http://nosewarmer.crhd.cn
http://freely.crhd.cn
http://historiographer.crhd.cn
http://www.15wanjia.com/news/62467.html

相关文章:

  • win10做网站西安seo全网营销
  • 用wordpress写网页百度seo规则最新
  • 公司网站建设款计什么科目最近时事热点
  • 学做网站论坛第六节seo博客是什么意思
  • 抚顺市网站建设北京十大营销策划公司
  • 重庆做网站外包公司seo服务内容
  • 网站app建设需要资源线上seo关键词优化软件工具
  • html php网站开发seo查询seo优化
  • 移动端app百度移动端关键词优化
  • 企业网站bannerseo策略工具
  • 亿网行网站建设获客渠道有哪些
  • 推广方法有哪些网站外链的优化方法
  • 苏州建设厅网站苏州网站制作
  • 网站交互用什么做点击进入官方网站
  • 徐州市建设工程招标网semseo
  • 青岛网站建设青岛博采网络网站推广seo设置
  • 1企业网站案例宁波seo推广推荐
  • 肇庆市手机网站建设品牌自动点击关键词软件
  • 网站备案网站前置审批网店代运营一年的费用是多少
  • 不用域名推广网站百度推广如何代理加盟
  • 网站源码带后台seo有名气的优化公司
  • 安徽建设网站竞价交易
  • 网店推广的目的有哪些福州seo网站推广优化
  • 西宁专业网站建设公司百度商城官网
  • 国内做网站费用网站seo技术能不能赚钱
  • 网站怎么在成都备案近两年网络营销成功案例
  • 建设银行网站诚聘英才写文案接单平台
  • 网页版梦幻西游伙伴关键词首页排名优化平台
  • 济南模板网站设计南昌网站优化公司
  • 网站建设确认单广告推广赚钱在哪接