首页 >

mysql容量快满时循环删除 |连接mysql测试语句

mysql知行计划,mysql开启服务3534,设置mysql设置编码格式,mysql某字段批量更新,mysql update 批量修改,连接mysql测试语句mysql容量快满时循环删除 |连接mysql测试语句

在MySQL容量快满的情况下,大家可以通过循环删除一些过期或者无用的数据来释放空间。以下是实现该操作的代码:

CREATE PROCEDURE delete_expired_data()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE table_name VARCHAR(50);
DECLARE expire_time INT DEFAULT 30;
-- 游标用于遍历所有表格
DECLARE cur CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name';
-- 遍历所有表格
OPEN cur;
read_loop: LOOP
FETCH cur INTO table_name;
IF done THEN
LEAVE read_loop;
END IF;
-- 如果表格名称不含tmp,且该表格的记录超期,则删除该表格的数据
IF INSTR(table_name, 'tmp') = 0 AND (SELECT COUNT(*) FROM your_database_name.`table_name` WHERE `created_at`0 THEN
SET @query = CONCAT('DELETE FROM your_database_name.', table_name, ' WHERE created_at< DATE_SUB(NOW(), INTERVAL ', expire_time, ' DAY)');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END LOOP;
CLOSE cur;
END;

以上的代码会遍历所有表格,并删除其中created_at字段所对应的数据超过expire_time天的记录。

需要注意的是,在使用该代码前,大家需要将语句中的“your_database_name”和“expire_time”替换为实际情况下的数据库名称和需要清理的数据超期时间(以天为单位)。


mysql容量快满时循环删除 |连接mysql测试语句
  • mysql 时间差14小时 |mysql 修改字段格式化
  • mysql 时间差14小时 |mysql 修改字段格式化 | mysql 时间差14小时 |mysql 修改字段格式化 ...

    mysql容量快满时循环删除 |连接mysql测试语句
  • 亿图如何与mysql进行数据交互? |mysql front常用功能
  • 亿图如何与mysql进行数据交互? |mysql front常用功能 | 亿图如何与mysql进行数据交互? |mysql front常用功能 ...

    mysql容量快满时循环删除 |连接mysql测试语句
  • mysql比较运算符索引失效 |mysql 查询所有表内容
  • mysql比较运算符索引失效 |mysql 查询所有表内容 | mysql比较运算符索引失效 |mysql 查询所有表内容 ...