MySql 用存储过程删除所有用户表

 用拼接语句总是会出问题

-- 1. 禁用外键约束(防止级联删除失败)[1]()
SET SESSION FOREIGN_KEY_CHECKS = 0;  -- 2. 生成并执行删除语句(替换 your_database_name)
SELECT CONCAT('DROP TABLE IF EXISTS `', TABLE_NAME, '`;')  -- 预览语句[2]()
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'free_working_dev';-- 3. 正式执行删除(单语句批量操作)[6]()
SET GROUP_CONCAT_MAX_LEN = 1000000;  -- 防止超长语句截断 
SET @sql = (SELECT GROUP_CONCAT('DROP TABLE IF EXISTS `', TABLE_NAME, '` SEPARATOR "; "') FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'free_working_dev'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;-- 4. 恢复外键检查 
SET SESSION FOREIGN_KEY_CHECKS = 1; 

结果,由于表太多,超过了拼接长度,会得到类似下面的报错

1064 - 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 'SEPARATOR "; ",DROP TABLE IF EXISTS `City` SEPARATOR "; ",DROP TABLE IF EXISTS `' at line 1

 所以,一个一劳永逸的办法,临时创建一个存储过程,绕过这个坑,调用完这个存储过程,再把它删掉

-- 创建存储过程 
DELIMITER // CREATE PROCEDURE drop_tables_in_schema() 
BEGIN -- 声明变量 DECLARE done INT DEFAULT 0; DECLARE table_name_var VARCHAR(255); -- 声明游标 DECLARE table_cursor CURSOR FOR SELECT table_name FROM information_schema.tables  WHERE table_schema = 'free_working_dev'; -- 声明异常处理 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; -- 打开游标 OPEN table_cursor; -- 循环处理 read_loop: LOOP -- 获取表名 FETCH table_cursor INTO table_name_var; -- 判断是否结束 IF done THEN LEAVE read_loop; END IF; -- 生成并执行 DROP TABLE 语句 SET @sql = CONCAT('DROP TABLE ', table_name_var); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END LOOP; -- 关闭游标 CLOSE table_cursor; 
END // DELIMITER ; -- 调用存储过程 
CALL drop_tables_in_schema(); -- 删除存储过程(可选) 
DROP PROCEDURE IF EXISTS drop_tables_in_schema; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909810.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java八股文——MySQL「锁篇」

讲一下MySQL里有哪些锁? 面试官您好,MySQL中的锁机制非常丰富,它是保证数据一致性和并发安全的核心。我通常会从锁的粒度(加锁范围) 和锁的模式(功能) 这两个维度来理解它们。 第一维度&#…

B站精品课程

【Python并发编程】线程,进程,协程,线程安全,多线程,死锁,线程池等与案例解析,从入门到精通 https://www.bilibili.com/video/BV1EfdcYmEff/?spm_id_from333.337.search-card.all.click&v…

# ubuntu中安装使用五笔输入法

先 清理旧输入法并重新安装 fcitx5 五笔输入法👇 📦 第一步:清理旧的 Fcitx5 及相关输入法组件 sudo apt purge fcitx* mozc* ibus* -y sudo apt autoremove --purge -y📝 说明: fcitx* 会清除旧版本 Fcitx/Fcitx5。…

LSM树与B+树优缺点分析

1. LSM树优化了顺序写,因此写性能很好,但在查询上: 需要从Level 0到Level n一直顺序查下去。极端情况是LSM树中不存在该数据,则需要遍历L0->Ln,最后返回空集。 解决方法是用布隆过滤器优化查询。 2. B树范围查询性…

【成都鱼住未来身份证】 身份证读取与解析———未来之窗行业应用跨平台架构——智能编程——仙盟创梦IDE

读取身份证开发配置 function readerid鱼住未来科技(){const webUrl http:// "127.0.0.1:30004" /api/info$.ajax({url: webUrl,type: GET,dataType: json,success: function (result) {// processContent.text(web api接口: webUrl 读取身份证信息…

开启并连接redis以及端口占用问题

开启命令行 redis-server.exe redis.windows.conf 端口占用问题 查看端口: 输入命令行: netstat -ano | findstr :6379 找到并停止pid号: 这个要用到cmd管理员身份打开 taskkill /f /pid 你的端口号 重新开启就行了 再用另一个cmd进行连…

MCP数据可视化服务器配置依赖

# requirements.txt # MCP数据可视化服务器依赖包# 核心MCP包 mcp>=0.1.0# 数据处理 pandas>=2.0.0 numpy>=1.24.0# 可视化 matplotlib>=3.7.0 seaborn>=0.12.0# 异步支持 asyncio-mqtt>=0.13.0# JSON处理 jsonschema>=4.17.0# 图像处理 Pillow>=9.5.0…

量化面试绿皮书:14. 钟表零件

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 14. 钟表零件 一个时钟(顺时针编号为 1-12)从墙上掉了下来,摔成三块你发现每块上的数字之和是相等的。 Q: 每块上的数字是多少&…

AndroidR平台ToastPresenter引出BinderProxy泄漏

一、问题描述 针对SA8155车机系统Qnx+Android,自动化测试模拟发送CAN信号测试,压测报出多例BinderProxy leak引起system_server重启 问题1 [CRASH] system_server osVersion: V1.2.***,提交时间:2025-06-05 ***,复现了2次java.lang.AssertionError: Binder ProxyMap has…

windows11中切换到其他桌面再切回当前桌面,任务栏的WPS有好几个窗口

感谢知乎的网友 原文链接 新建一个后缀为 .reg 的文本文件,将以下内容粘贴进去,保存,然后双击运行 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\wpsoffice\Application Settings]"enable_m…

从汇编的角度揭开C++ this指针的神秘面纱(下)

<接上篇> 我们接着来看一段C的代码&#xff1a; class A { public:int func(int j){return j _i;} private:int _i; };int main() {A a;a.func(3);return 0; } 这里定义了一个类A&#xff0c;在main函数中定义了A类的对像a。同时用a调用了成员函数func。我们来看一…

Kafka代码模板

Kafka 服务器&#xff08;Broker&#xff09; 的配置 server.properties # broker.id: 每个 Kafka Broker 的唯一标识符。broker.id 必须在整个 Kafka 集群中唯一。 broker.id0# 配置 Kafka Broker 监听客户端请求的地址和端口。这个配置决定了 Kafka 服务将接受来自生产者、…

最大子数组和C++

给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&#xff1a;…

centos 7单机安装ceph并创建rbd块设备

1. 安装依赖包 新增阿里云源ceph下载地址 vim /etc/yum.repos.d/ceph.repo [ceph] nameceph baseurlhttp://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/ gpgcheck0 [ceph-noarch] namecephnoarch baseurlhttp://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/ gpgcheck…

Jenkins搭建、权限管理、参数化、流水线等详细教程!

部署Jenkins 一、jenkins 安装 官网&#xff1a; https://jenkins.io yum 安装 jenkins *jenkins 依赖 java 环境 #注意2.346之后的版本不再支持jdk8 卸载旧jenkins #查询以前是否安装jenkins rpm -qa |grep jenkins #卸载 jenkins yum -y remove jenkins rpm -e jenkins…

百度飞桨(PaddlePaddle)案例分享:基于 PaddleOCR 的图像文字提取系统

一、案例背景 在实际教学、办公及政务系统中&#xff0c;纸质材料&#xff08;如手写作文、表格、试卷等&#xff09;仍广泛存在。为提升信息处理效率&#xff0c;采用 OCR&#xff08;Optical Character Recognition&#xff09;技术将图像中的文字提取为可编辑文本已成为刚需…

python操控鼠标

在已知屏幕坐标的情况下&#xff0c;可以通过 Python 的 pyautogui 或 pynput 等库实现网页上的鼠标点击操作。以下是具体步骤和代码示例&#xff1a; 1. 使用 PyAutoGUI&#xff08;推荐&#xff09; pyautogui 是一个简单易用的库&#xff0c;可以直接通过屏幕坐标控制鼠标点…

UV 与 Bun 深度解析

UV 与 Bun 深度解析&#xff1a;现代开发工具的安装与使用指南 什么是 UV&#xff1f; UV&#xff08;Ultra-Velocity&#xff09;是由 Astral 公司&#xff08;Ruff 的创建者&#xff09;开发的超高速 Python 包管理工具&#xff1a; 用 Rust 编写&#xff0c;速度极快&…

【算力网络】多样化算力感知

一、算力网络 ​ 算力网络&#xff08;Computing Power Network&#xff09;是我国率先提出的原创性技术理念&#xff0c;其核心是通过高速网络整合分散的算力资源&#xff08;如云端、边缘、终端等&#xff09;&#xff0c;实现算力的动态感知、智能调度和一体化服务&#x…

Greenplum/PostgreSQL pg_hba.conf 认证方法详解

Greenplum/PostgreSQL pg_hba.conf 认证方法详解 pg_hba.conf 文件中的 METHOD 字段指定了客户端认证方式&#xff0c;以下是各种认证方法的详细说明和配置示例。 常用认证方法 1. trust - 无条件允许连接 说明&#xff1a;不需要密码&#xff0c;完全信任连接 适用场景&am…