MySQL 中是否有一个函数可以在 table 达到某个值(例如 100MB)时将其截断?

Is there a function in MySQL to truncate a table when it reaches a certain value, like 100MB?

    SELECT ehrt_cache_render;
    IF TABLE ehrt_cache_render > 20 MB THEN TRUNCATE TABLE ehrt_cache_render;
    END IF;

我试过了。

这是一种可能性,要做到这一点

您应该在查询中指定数据库名称 YOUR_DATABASE_NAME 否则,您可能会截断不需要的表

SELECT 
    round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
    INTO @size_table
FROM information_schema.TABLES 
WHERE 
     table_schema = "YOUR_DATABASE_NAME"   
AND table_name = "ehrt_cache_render";
SELECT IF(@size_table IS NULL,@sql := "DO NULL", IF(@size_table > 100,@sql := "TRUNCATE TABLE YOUR_DATABASE_NAME.ehrt_cache_render",@sql := "DO NULL"));
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;