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

网站设置支付宝在线支付同江佳木斯网站设计

网站设置支付宝在线支付,同江佳木斯网站设计,网站服务器租用哪家好,企业做网站应注意什么某天#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.hkea.cn/news/14517562/

相关文章:

  • 北京东城做网站尚层装饰官网
  • 如何设置域名seo推广培训
  • 筑巢网站建设怎么样网站建设 昆山
  • 与市场营销有关的网站做外贸的有哪些网站有哪些
  • 建设厅考试成绩查询山东seo推广
  • 用prestashop做网站塘下春华网站建设
  • 怎么才能百度到自己的网站温州建网站公司哪家好
  • 厦门网站建设哪家强广州网站建设专业乐云seo
  • 网站建设需多少钱永久8x的最新域名
  • 企业网站建设合同电子版桂林网红打卡景点
  • wordpress关注简单分析网站的外链 以及优化的策略.
  • iis7添加网站上海十大企业排名
  • 博客类网站怎么做网站维护 静态页面
  • 做的网站文字是乱码福州全网网站建设
  • 大学电子商务网站建设方案大连网站建设短期培训班
  • 网站建设销售业绩任务网站开发资格证书
  • 企业宣传类网站建设计算机科学与技术
  • 建设一个网站的硬件要求建筑教育培训网
  • 重庆网站建设培训机构学费深圳网站备案时间
  • 个人电脑做网站服务器教程海南专业网站建设
  • 德育工作网站建设方案网络营销的主要策略
  • 钉钉企业注册流程windows优化大师功能
  • 关于网站平台建设调研的函php与H5做网站
  • 怎样先做网站后买域名做公司网站宣传公司
  • 陕西省城乡住房建设部网站wordpress问答中心
  • 怎么做电商平台网站页面布局方式
  • 贵阳网站建开发河北省和城乡住房建设厅网站首页
  • 中国建设银官方网站洛阳建设银行网站
  • 临沂做拼多多网站2018年主流网站开发语言
  • 政协网站 两学一做专题研讨百度seo排名推广