mysql判断表是否存在然后批量删除的操作

 更新时间:2020年10月23日 14:33:54   作者:小道仙  
这篇文章主要介绍了mysql判断表是否存在然后批量删除操作,具有很好的参考价值,希望对有所帮助。一起跟随小编过来看看吧

1、在网上找了许久都没有找到判断表是否存在,然后模糊删除的。但是最后找到了一个曲线救国的方法。

需求:删除表中后缀是 _待删除 的表

1、第一步,找到所有的这样的表,并且拼装好删除表的sql

Select CONCAT( 'DROP TABLE IF EXISTS ', table_name, ';' ) 
FROM information_schema.tables 
Where table_name LIKE '%_待删除';

执行结果

2、第二步:去一一执行删除语句,有能力的可以去写一个脚本执行什么的

3、sql解析

3-1 :concat 字符串拼接

3-2 :DROP TABLE IF EXISTS equi_accp_info__待删除; --判断这个表是否存在,如果存在就删除

补充知识:mysql 判断表字段是否存在,然后修改

我就废话不多说了,大家还是直接看代码吧~

-- 判断 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在则添加; 存在则修改字段类型

DELIMITER ??
DROP PROCEDURE IF EXISTS schema_change??
CREATE PROCEDURE schema_change()
BEGIN
IF NOT EXISTS (SELECT * FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vrv_paw_rule' AND column_name = 'thresholdMin') THEN
  ALTER TABLE vrv_paw_rule ADD COLUMN thresholdMin BIGINT;
ELSE  
  ALTER TABLE vrv_paw_rule MODIFY COLUMN thresholdMin BIGINT ;
END IF; 
END??
DELIMITER ;

CALL schema_change();

delimit命令:

就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了,即改变输入结束符。

默认情况下,delimiter是分号“;”。

在命令行客户端中,如果有一行命令以分号结束,

那么回车后,mysql将会执行该命令。

但有时候,不希望MySQL这么做。因为可能输入较多的语句,且语句中包含有分号。

默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。

因为mysql一遇到分号,它就要自动执行。

这种情况下,就可以使用delimiter,把delimiter后面换成其它符号,如//或$$。

此时,delimiter作用就是对整个小段语句做一个简单的封装。

此命令多用在定义子程序,触发程序等mysql自己内嵌小程序中。

以上这篇mysql判断表是否存在然后批量删除的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql-connector-java与mysql版本的对应关系说明

    mysql-connector-java与mysql版本的对应关系说明

    这篇文章主要介绍了mysql-connector-java与mysql版本的对应关系说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Mysql 默认字符集设置方法(免安装版)

    Mysql 默认字符集设置方法(免安装版)

    有些时候我们在使用非安装版的mysql是需要设置默认字符集的时候,就需要这样的修改了。安装版的可以选择的。
    2009-03-03
  • mysql 前几条记录语句之(limit)

    mysql 前几条记录语句之(limit)

    mysql 的 top 方法 limit,用来获取数据库查询的前几天记录。
    2009-11-11
  • mysql慢查询操作实例分析【开启、测试、确认等】

    mysql慢查询操作实例分析【开启、测试、确认等】

    这篇文章主要介绍了mysql慢查询操作,结合实例形式分析了mysql慢查询操作中的开启、测试、确认等实现方法及相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • Dbeaver连接不上mysql数据库(Access denied for user ‘root‘@‘localhost‘)

    Dbeaver连接不上mysql数据库(Access denied for user&nb

    本文主要介绍了Dbeaver连接不上mysql数据库(Access denied for user ‘root‘@‘localhost‘),尝试了很多方法,下面就来介绍一下,感兴趣的可以了解一下
    2024-04-04
  • MySQL中进行跨库查询的方法示例

    MySQL中进行跨库查询的方法示例

    这篇文章主要给大家介绍了关于MySQL中进行跨库查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • MySQL 5.7升级8.0后出现排序规则问题的解决方案汇总

    MySQL 5.7升级8.0后出现排序规则问题的解决方案汇总

    MySQL 5.7.34 升级到 8.0.32 后部分查询语句报错如下,ERROR 1267 (HY000),比较操作中使用不同的字符集或排序规则通常会触发此问题,所以本文给大家介绍了MySQL 5.7升级8.0后出现排序规则问题的解决方案汇总,需要的朋友可以参考下
    2024-06-06
  • Express连接MySQL及数据库连接池技术实例

    Express连接MySQL及数据库连接池技术实例

    数据库连接池是程序启动时建立足够数量的数据库连接对象,并将这些连接对象组成一个池,由程序动态地对池中的连接对象进行申请、使用和释放,本文重点给大家介绍Express连接MySQL及数据库连接池技术,感兴趣的朋友一起看看吧
    2022-02-02
  • Mysql数据库分库分表全面瓦解

    Mysql数据库分库分表全面瓦解

    物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割
    2022-01-01
  • MySQL如何计算连续登录天数

    MySQL如何计算连续登录天数

    这篇文章主要介绍了MySQL如何计算连续登录天数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05

最新评论