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

网站信息建设网站宣传方案

网站信息建设,网站宣传方案,相册管理网站模板下载,河北邯郸天气预报15天查询某天#xff0c;正按照业务的要求删除不需要的数据#xff0c;在执行 DELETE 语句时#xff0c;竟然出现了报错#xff01; 作者#xff1a;林靖华#xff0c;开源数据库技术爱好者#xff0c;擅长MySQL和Redis的运维 爱可生开源社区出品#xff0c;原创内容未经授权不…某天正按照业务的要求删除不需要的数据在执行 DELETE 语句时竟然出现了报错 作者林靖华开源数据库技术爱好者擅长MySQL和Redis的运维 爱可生开源社区出品原创内容未经授权不得随意使用转载请联系小编并注明来源。 本文约 650 字预计阅读需要 2 分钟。 背景 某天正按照业务的要求删除不需要的数据在执行 DELETE 语句时竟然出现了报错MySQL 数据库版本 5.7.34 mysql delete from test1 t1 where not exists (select 1 from test2 t2 where t1.idt2.id); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near t1 where not exists (select 1 from test2 t2 where t1.idt2.id) at line 1 这就有点奇怪了因为我在执行删除语句之前执行过同样条件的 SELECT 语句只是把其中的 select * 换成了 delete 而已毕竟这个语法的报错一般来说原因很大可能是 关键字拼写错误 或者 存在中文符号。 排除了上面的原因后再从语句本身的逻辑来排查难道说 DELETE 语句不支持 not exists 这种写法好像之前也没听说过这个限制。我们还是以语法错误这个原因为起点去查查官方文档看下能不能找出答案。 分析 DELETE 的语法如下 5.7 单表删除格式 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[PARTITION (partition_name [, partition_name] ...)][WHERE where_condition][ORDER BY ...][LIMIT row_count] 仔细对比了以下发现了一些端倪这里的语法并没有写出表名的别名用法难道是使用了别名的原因 mysql delete from test1 where not exists (select 1 from test2 where test1.idtest2.id); Query OK, 1 row affected (0.00 sec) 经测试去掉了别名还真的执行成功了但我印象中之前删除数据的时候用过别名于是我再继续深挖文档查查看。 对比不同地方和不同版本的格式差异后我终于明白了问题的起因。在不同版本甚至不同情况下都有差异。 8.0 单表删除格式 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias][PARTITION (partition_name [, partition_name] ...)][WHERE where_condition][ORDER BY ...][LIMIT row_count] 5.7 和 8.0 多表删除格式 DELETE [LOW_PRIORITY] [QUICK] [IGNORE]tbl_name[.*] [, tbl_name[.*]] ...FROM table_references[WHERE where_condition]DELETE [LOW_PRIORITY] [QUICK] [IGNORE]FROM tbl_name[.*] [, tbl_name[.*]] ...USING table_references[WHERE where_condition] 经过上面语法对比的不同发现5.7 的单表删除确实不支持别名的使用但是多表删除却支持table_references 里包含别名的使用。 并且在 8.0.16 开始单表删除已经支持使用别名了。 For consistency with the SQL standard and other RDBMS, table aliases are now supported in single-table as well as multi-table DELETE statements. (Bug #27455809) 结论 MySQL 5.7 使用单表删除语句时不能使用别名多表删除可以使用别名。MySQL 8.0.16 开始单表多表都可以使用别名。 更多技术文章请访问https://opensource.actionsky.com/ 关于 SQLE SQLE 是一款全方位的 SQL 质量管理平台覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库为开发和运维提供流程自动化能力提升上线效率提高数据质量。 SQLE 获取 类型地址版本库https://github.com/actiontech/sqle文档https://actiontech.github.io/sqle-docs/发布信息https://github.com/actiontech/sqle/releases数据审核插件开发文档https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
http://www.pierceye.com/news/928576/

相关文章:

  • seo官网制作规划绍兴seo整站优化
  • 怎么做网站广告设计学习
  • 邵东平台网站建设中山手机台app
  • 学什么可以做网站免费qq空间网站
  • 网站套餐到期啥意思电子商务电商网站饿建设
  • 电商网站零售客户重庆旅游景点
  • 建设银行成都官网招聘网站自主建网站
  • 云南省建设厅定额网站房地产开发公司是做什么的
  • 哪个网站卖自己做的手工艺品有哪些好的做网站公司好
  • 做电影网站用什么主机好最新网站域名
  • 唐山做网站公司汉狮价格搜索引擎禁止的方式优化网站
  • 做视频网站视频常见网站安全漏洞
  • 苏州企业名录黄页新乡网站自然优化
  • 有哪些建设网站公司网站建设需求单
  • 招聘网站做销售用手机网站做app
  • 做一个网站 多少钱撤销网站备案
  • 建设网站的流程图企业工资管理系统软件
  • 个人网站空间大小可以做网站的语言
  • 网站设计需要哪些技术wap购物网站源码
  • 一个空间两个php网站新能源车排名前十名
  • 如何建设公司门户网站建站仅向商家提供技术服务
  • 全国城建中心官方网站广州市品牌网站建设怎么样
  • 做百度移动端网站排名软件有哪些漫画做的好的网站好
  • 网站建设的基本条件crm和erp的区别
  • 网站关键词优化费用wordpress开发架构
  • 都安网站建设南宁网站建设哪家公司实
  • 廊坊企业网站团队莱芜做网站
  • 如何让百度收录网站用什么软件开发手机app
  • 郑州哪里有做网站wordpress编辑页面模板
  • 网站定制要花多少钱电商设计类插画