Heim > Datenbank > MySQL-Tutorial > Hauptteil

使用存储过程和Event事件为Mysql表自动建立分区_MySQL

WBOY
Freigeben: 2016-06-01 13:26:07
Original
1313 Leute haben es durchsucht

bitsCN.com

闲话少叙,直接上马

BEGIN#Routine body goes here...declare minMonitTime date default CURDATE();DECLARE partname   varchar(50);SET partname=CONCAT('part',CURDATE()-0);#首先新建一个分区set @v_add = CONCAT('ALTER TABLE part_tab12123  PARTITION BY RANGE COLUMNS(date)  (PARTITION partmin VALUES LESS THAN (/'1991-12-13/'))');        -- 定义预处理语句 prepare stm from @v_add;        -- 执行预处理语句execute stm;        -- 释放预处理语句deallocate prepare stm;set @v_add_s = CONCAT('ALTER TABLE part_tab12123  ADD PARTITION  (PARTITION ',partname,' VALUES LESS THAN (/'',minMonitTime,'/'))');        -- 定义预处理语句 prepare stmt from @v_add_s;        -- 执行预处理语句execute stmt;        -- 释放预处理语句deallocate prepare stmt;END
Nach dem Login kopieren
在Event事件中设置每天执行一次,那就会每天都建立一个分区,分区的名字是part20140102,part加上日期,分区已当前日期进行划分

注:因为之前直接语句执行建立分区的时候,语句中如果有参数或者系统的函数,比如CURDATE(),等执行会报错,所以在存储过程中将语句拼接上然后执行

由于该存储过程使用的是ADD添加分区,如果新建的表之前未添加分区,则会报错,所以新建表之后应该先添加一个分区

最后使用:

SELECT            partition_name part,             partition_expression expr,             partition_description descr,             table_rows     FROM            INFORMATION_SCHEMA.partitions     WHERE    	TABLE_NAME='表名'; 
Nach dem Login kopieren
查看已经创建的分区  bitsCN.com
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage