日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql动态分区_MySQL动态创建分区

發布時間:2025/3/21 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql动态分区_MySQL动态创建分区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按日期分區的數據表,我們希望每年、每個月甚至每天動態創建一個分區,這種情況就需要用事件和存儲過程來實現動態添加分區,下面的存儲過程是按年分區增加當年分區的過程:

BEGIN

#Routine body goes here...

DECLARE currentTime date DEFAULT CURDATE();

DECLARE partName VARCHAR(12);

DECLARE i_part_name VARCHAR(12);

DECLARE i_flag INT DEFAULT 0;

DECLARE currentYear INT DEFAULT 0;

#指針遍歷分區名,避免定義重復分區名

DECLARE cur_partition CURSOR for select partition_name part from information_schema.PARTITIONS

where TABLE_SCHEMA = schema() and TABLE_NAME='test';

#此句必須添加,不然會出現死循環,含義是當遍歷指針為空后賦值此變量為NULL

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET i_part_name = NULL;

#定義欲創建的分區名,用于遍歷匹配已有分區名

SET partName=CONCAT('part_',YEAR(currentTime));

OPEN cur_partition;

FETCH cur_partition into i_part_name;

WHILE (i_part_name IS NOT NULL)

DO

IF i_part_name = partName THEN

SET i_flag = 1;

END IF;

FETCH cur_partition into i_part_name;

END WHILE;

CLOSE cur_partition;

#如果沒有創建分區則創建當前年份的分區

IF i_flag = 0 THEN

SET currentYear=YEAR(currentTime) + 1;

SET @v_add_s = CONCAT('ALTER TABLE test ADD PARTITION (PARTITION ',partName,' VALUES LESS THAN (',currentYear,'))');

prepare stmt from @v_add_s;

execute stmt;

deallocate prepare stmt;

END IF;

END

總結

以上是生活随笔為你收集整理的mysql动态分区_MySQL动态创建分区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。