mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-22 18:35:35 +08:00
26 lines
1.1 KiB
Plaintext
26 lines
1.1 KiB
Plaintext
DELIMITER $$
|
|
CREATE PROCEDURE ome_log_add_partition()
|
|
BEGIN
|
|
-- 提前创建后天的分区(防止任务失败导致数据丢失)
|
|
SET @next_date = CURDATE() + INTERVAL 2 DAY;
|
|
SET @partition_name = CONCAT('p', DATE_FORMAT(@next_date, '%Y_%m_%d'));
|
|
SET @partition_limit = UNIX_TIMESTAMP(DATE_ADD(@next_date, INTERVAL 1 DAY));
|
|
|
|
SET @partition_name_exist = (SELECT PARTITION_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = '{table}ome_api_log' AND TABLE_SCHEMA = '{db}' AND PARTITION_NAME = @partition_name LIMIT 1);
|
|
|
|
-- Check if partition already exists
|
|
IF @partition_name_exist IS NULL THEN
|
|
-- 动态SQL重组p_future分区
|
|
SET @sql = CONCAT(
|
|
'ALTER TABLE {table}ome_api_log REORGANIZE PARTITION p_future INTO (',
|
|
'PARTITION ', @partition_name, ' VALUES LESS THAN (', @partition_limit, '), ',
|
|
'PARTITION p_future VALUES LESS THAN MAXVALUE',
|
|
')'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
END IF;
|
|
END$$
|
|
|
|
DELIMITER ; |