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 ;