Management of RANGE and LIST Partitions ‘name‘ varchar(50) DEFAULT NULL, ‘purchased‘ date DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE ( YEAR(purchased)) (PARTITION p0 VALUES LESS THAN (1990) ENGINE = InnoDB,  PARTITION p1 VALUES LESS THAN (1995) ENGINE = InnoDB,  PARTITION p3 VALUES LESS THAN (2005) ENGINE = InnoDB,  PARTITION p4 VALUES LESS THAN (2010) ENGINE = InnoDB,  PARTITION p5 VALUES LESS THAN (2015) ENGINE = InnoDB) */ 1 row in set (0.00 sec) mysql>  INSERT INTO tr VALUES (11, ’pencil holder’, ’1995-07-12’); Query OK, 1 row affected (0.00 sec) mysql>  SELECT * FROM tr WHERE purchased ->  BETWEEN ’1995-01-01’ AND ’2004-12-31’; +------+----------------+------------+ | id | name | purchased | +------+----------------+------------+ | 1 | desk organiser | 2003-10-15 | | 11 | pencil holder | 1995-07-12 | +------+----------------+------------+ 2 rows in set (0.00 sec) mysql>  ALTER TABLE tr DROP PARTITION p3; Query OK, 0 rows affected (0.03 sec) mysql>  SELECT * FROM tr WHERE purchased ->  BETWEEN ’1995-01-01’ AND ’2004-12-31’; Empty set (0.00 sec) CREATE TABLE members ( id INT, fname VARCHAR(25), lname VARCHAR(25), dob DATE ) PARTITION BY RANGE( YEAR(dob) ) ( PARTITION p0 VALUES LESS THAN (1980), PARTITION p1 VALUES LESS THAN (1990), PARTITION p2 VALUES LESS THAN (2000) ); 4689 Suppose further that the minimum age for members is 16. As the calendar approaches the end of 2015, you realize that you must soon be prepared to admit members who were born in 2000 (and later). You can modify the  members  table to accommodate new members born in the years 2000 to 2010 as shown here: To add a new range or list partition to a previously partitioned table, use the  ALTER TABLE ... ADD PARTITION  statement. For tables which are partitioned by  RANGE , this can be used to add a new range to the end of the list of existing partitions. Suppose that you have a partitioned table containing membership data for your organization, which is defined as follows: Dropping  LIST  partitions uses exactly the same  ALTER TABLE ... DROP PARTITION  syntax as used for dropping  RANGE  partitions. However, there is one important difference in the effect this has on your use of the table afterward: You can no longer insert into the table any rows having any of the values that were included in the value list defining the deleted partition. (See Section 24.2.2, “LIST Partitioning” , for an example.) The number of rows dropped from the table as a result of  ALTER TABLE ... DROP PARTITION  is not reported by the server as it would be by the equivalent  DELETE  query. When you insert new rows into the changed table with  purchased  column values between ’1995-01-01’  and  ’2004-12-31’  inclusive, those rows are stored in partition  p3 . You can verify this as follows: