mysql判断表是否存在然后批量删除的操作
1、在⽹上了许久都没有到判断表是否存在,然后模糊删除的。但是最后到了⼀个曲线救国的⽅法。
需求:删除表中后缀是 _待删除的表
1、第⼀步,到所有的这样的表,并且拼装好删除表的sqldrop删除表
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 lumns WHERE table_schema = DATABAS
E() 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判断表是否存在然后批量删除的操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。