模糊查詢表名 拼接成sql 得到drop語句手動執行即可
SELECT
CONCAT( 'drop table ', table_name, ';' )
FROM
# 數據爲所有數據庫的表 show table不能作爲表數據被查詢
information_schema.TABLES
WHERE
table_name LIKE 'act_%' AND table_schema='當前數據庫名稱';
如下並未成功運行 DROP一個表可以通過 多個不行 好像DROP不能同時執行多個
好像是mysql的限制 如下方式SELECT 語句可正常操作 MySQL生成數據庫設計表格
把語句通過GROUP_CONCAT合成一個結果 使用EXECUTE執行
SELECT @sql :=
# 關閉外鍵約束檢查
CONCAT('SET foreign_key_checks = 0;'
# 如果group_concat查詢結果不完整 需要修改mysql配置文件中的group_concat_max_len值
,GROUP_CONCAT(
CONCAT( 'DROP TABLE IF EXISTS ', table_name) SEPARATOR ';'
)
# 開啓外鍵約束檢查
,';SET foreign_key_checks = 1;') FROM
information_schema.TABLES
WHERE
table_name LIKE 'act_%' AND table_schema='當前數據庫名稱';
# 預編譯
PREPARE _sql FROM @sql;
EXECUTE _sql;
表數據刪除操作把如上腳本換成DELETE FROM語句即可
group_concat參考 https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat