MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
partition_date.inc
1 eval create table t1 (a date not null, primary key(a)) engine=$engine
2 partition by key (a) (
3 partition pa1 max_rows=20 min_rows=2,
4 partition pa2 max_rows=30 min_rows=3,
5 partition pa3 max_rows=30 min_rows=4,
6 partition pa4 max_rows=40 min_rows=2);
7 show create table t1;
8 insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
9 select * from t1;
10 select * from t1 where a=19801014;
11 delete from t1 where a=19801014;
12 select * from t1;
13 drop table t1;
14 
15 eval create table t2 (a date not null, primary key(a)) engine=$engine
16 partition by key (a) partitions 12;
17 show create table t2;
18 insert into t2 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
19 select * from t2;
20 select * from t2 where a='1980-10-14';
21 delete from t2 where a='1980-10-14';
22 select * from t2;
23 delete from t2;
24 let $count=28;
25 --echo $count inserts;
26 #--disable_query_log
27 while ($count)
28 {
29 eval insert into t2 values (19700101+$count-1);
30 eval insert into t2 values (19700201+$count-1);
31 eval insert into t2 values (19700301+$count-1);
32 dec $count;
33 }
34 #--enable_query_log
35 select count(*) from t2;
36 select * from t2;
37 drop table t2;
38 
39 eval create table t3 (a date not null, primary key(a)) engine=$engine
40 partition by range (month(a)) subpartition by key (a)
41 subpartitions 3 (
42 partition quarter1 values less than (4),
43 partition quarter2 values less than (7),
44 partition quarter3 values less than (10),
45 partition quarter4 values less than (13)
46 );
47 show create table t3;
48 let $count=12;
49 --echo $count inserts;
50 while ($count)
51 {
52 eval insert into t3 values (adddate(19700101,interval $count-1 month));
53 dec $count;
54 }
55 select count(*) from t3;
56 select * from t3;
57 drop table t3;
58 
59 eval create table t4 (a date not null, primary key(a)) engine=$engine
60 partition by list (month(a)) subpartition by key (a)
61 subpartitions 3 (
62 partition quarter1 values in (1,2,3),
63 partition quarter2 values in (4,5,6),
64 partition quarter3 values in (7,8,9),
65 partition quarter4 values in (10,11,12)
66 );
67 show create table t4;
68 let $count=12;
69 --echo $count inserts;
70 while ($count)
71 {
72 eval insert into t4 values (adddate(19700101,interval $count-1 month));
73 dec $count;
74 }
75 select count(*) from t4;
76 select * from t4;
77 drop table t4;