mysql 数据库 写一段存储过程,如果一个临时表不是空的,就删除他
时间: 2023-09-05 22:15:05 浏览: 36
好的,以下是一个简单的 MySQL 存储过程,用于检查并删除临时表:
```
DELIMITER $$
CREATE PROCEDURE check_and_drop_temp_table(IN table_name VARCHAR(255))
BEGIN
DECLARE table_count INT;
SET table_count = (SELECT COUNT(*) FROM information_schema.tables WHERE table_name = table_name AND table_type = 'TEMPORARY');
IF table_count > 0 THEN
SET @query = CONCAT('DROP TEMPORARY TABLE ', table_name);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END $$
DELIMITER ;
```
使用方法:传入要检查和删除的临时表名,例如 `check_and_drop_temp_table('temp_table')`。
该存储过程首先查询信息模式中是否存在指定名称和类型的表,如果存在,则动态构建并执行 DROP TEMPORARY TABLE 语句以删除该表。
请注意,此存储过程只适用于临时表,如果传入的表名不是临时表,则不会执行删除操作。同时,本存储过程仅适用于 MySQL 数据库。