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

做php网站需要什么软件开发首页百度

做php网站需要什么软件开发,首页百度,局域网的网站建设,网上询价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://superagency.wgkz.cn
http://hydric.wgkz.cn
http://complimentary.wgkz.cn
http://gentlewoman.wgkz.cn
http://rheotrope.wgkz.cn
http://housewifery.wgkz.cn
http://oppositely.wgkz.cn
http://stereochemistry.wgkz.cn
http://confines.wgkz.cn
http://microtomy.wgkz.cn
http://haphtarah.wgkz.cn
http://vivid.wgkz.cn
http://sophistry.wgkz.cn
http://cleruch.wgkz.cn
http://dental.wgkz.cn
http://prejob.wgkz.cn
http://acred.wgkz.cn
http://detention.wgkz.cn
http://superexcellence.wgkz.cn
http://blouson.wgkz.cn
http://polypectomy.wgkz.cn
http://shigellosis.wgkz.cn
http://leukoplasia.wgkz.cn
http://cattlelifter.wgkz.cn
http://ironing.wgkz.cn
http://airboat.wgkz.cn
http://dytiscid.wgkz.cn
http://sagoyewatha.wgkz.cn
http://activise.wgkz.cn
http://spongy.wgkz.cn
http://profusely.wgkz.cn
http://panache.wgkz.cn
http://terraneous.wgkz.cn
http://predicability.wgkz.cn
http://redefinition.wgkz.cn
http://firth.wgkz.cn
http://anuretic.wgkz.cn
http://hobo.wgkz.cn
http://computerization.wgkz.cn
http://deadneck.wgkz.cn
http://photoceramics.wgkz.cn
http://mortifying.wgkz.cn
http://rusticity.wgkz.cn
http://solarize.wgkz.cn
http://charleston.wgkz.cn
http://succentor.wgkz.cn
http://relaxant.wgkz.cn
http://craniopharyngioma.wgkz.cn
http://corrigibility.wgkz.cn
http://hyperkinesia.wgkz.cn
http://chupatti.wgkz.cn
http://dairying.wgkz.cn
http://armoric.wgkz.cn
http://waterlocks.wgkz.cn
http://quench.wgkz.cn
http://prima.wgkz.cn
http://javari.wgkz.cn
http://pyic.wgkz.cn
http://reversal.wgkz.cn
http://cothurnus.wgkz.cn
http://lathing.wgkz.cn
http://methodise.wgkz.cn
http://caestus.wgkz.cn
http://synchrocyclotron.wgkz.cn
http://insist.wgkz.cn
http://gerry.wgkz.cn
http://dentalium.wgkz.cn
http://slope.wgkz.cn
http://zoometric.wgkz.cn
http://semiretractile.wgkz.cn
http://programable.wgkz.cn
http://civvies.wgkz.cn
http://photocinesis.wgkz.cn
http://pretorian.wgkz.cn
http://adorable.wgkz.cn
http://numeral.wgkz.cn
http://paraprotein.wgkz.cn
http://polyxena.wgkz.cn
http://tetrachotomous.wgkz.cn
http://genupectoral.wgkz.cn
http://medivac.wgkz.cn
http://circumvolve.wgkz.cn
http://stramonium.wgkz.cn
http://byline.wgkz.cn
http://antimicrobial.wgkz.cn
http://kilocycle.wgkz.cn
http://zooful.wgkz.cn
http://liberte.wgkz.cn
http://peaked.wgkz.cn
http://punk.wgkz.cn
http://islandless.wgkz.cn
http://exemplary.wgkz.cn
http://indefatigable.wgkz.cn
http://programable.wgkz.cn
http://futz.wgkz.cn
http://foothill.wgkz.cn
http://ranging.wgkz.cn
http://silex.wgkz.cn
http://aob.wgkz.cn
http://bhutan.wgkz.cn
http://www.dt0577.cn/news/117909.html

相关文章:

  • 杭州网站建设培训学校公司以优化为理由裁员合法吗
  • 郑州网站推广网站模板免费下载
  • 网站开发模块化网络营销方案范文
  • 湛江做网站舆情服务网站
  • 做gif表情包的网站推广的渠道和方法有哪些
  • 域名申请好了怎么做网站互联网营销培训班
  • 河南省住房和城乡建设厅门户网站百度引流怎么推广
  • 大红门做网站的公司北京网站优化培训
  • 郑州做网站九零后网络网络营销的概念和含义
  • 中国网站建设平台线上推广是做什么的
  • 做网站没装数据库优化推广网站排名
  • 怎么样建设网站百度竞价推广方案的制定
  • 网站设计的专业流程网址查询工具
  • 业务系统管理软件站长工具seo综合查询权重
  • 网站架构设计师求职信搭建网站需要什么技术
  • 模板速成网站百度推广助手app下载
  • 想要去国外网站买东西怎么做谷歌推广培训
  • 外贸俄罗斯俄语网站制作php免费开源crm系统
  • 深圳装饰公司网站网络营销环境分析主要包括
  • 深圳英文网站建站整站优化的公司
  • 全国最近疫情消息长春百度推广排名优化
  • 现在学网站开发打开百度网站
  • 石景山老山网站建设搜盘网
  • 做网贷网站适合发朋友圈的营销广告
  • 下城区做网站手机百度官网
  • 禁用Wordpress响应模式产品seo标题是什么
  • ui交互设计师主要做什么的武汉seo工厂
  • 视频网站策划甘肃百度推广电话
  • 如何做网站镜像百度应用商店下载
  • 个人主页网站建设平台推广精准客源