mysql> INSERT INTO h2 VALUES (3, 5); ERROR 1525 (HY000): Table has no partition for value 3 

When inserting multiple rows using a single INSERT  statement into a single InnoDB  table, InnoDB considers the statement a single transaction, so that the presence of any unmatched values causes the statement to fail completely, and so no rows are inserted. 

You can cause this type of error to be ignored by using the IGNORE  keyword. If you do so, rows containing unmatched partitioning column values are not inserted, but any rows with matching values are  inserted, and no errors are reported: 

mysql> TRUNCATE h2; Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM h2; Empty set (0.00 sec) mysql> INSERT IGNORE INTO h2 VALUES (2, 5), (6, 10), (7, 5), (3, 1), (1, 9); Query OK, 3 rows affected (0.00 sec) Records: 5 Duplicates: 2 Warnings: 0 mysql> SELECT * FROM h2; +------+------+ | c1 | c2 | +------+------+ | 7 | 5 | | 1 | 9 | | 2 | 5 | +------+------+ 3 rows in set (0.00 sec) 

MySQL 8.0 also provides support for LIST COLUMNS  partitioning, a variant of LIST  partitioning that enables you to use columns of types other than integer types for partitioning columns, and to use multiple columns as partitioning keys. For more information, see Section 24.2.3.2, “LIST COLUMNS partitioning” . 

## 24.2.3 COLUMNS Partitioning 

The next two sections discuss COLUMNS  partitioning , which are variants on RANGE  and LIST  partitioning. COLUMNS  partitioning enables the use of multiple columns in partitioning keys. All of these columns are taken into account both for the purpose of placing rows in partitions and for the determination of which partitions are to be checked for matching rows in partition pruning. 

In addition, both RANGE COLUMNS  partitioning and LIST COLUMNS  partitioning support the use of non- integer columns for defining value ranges or list members. The permitted data types are shown in the following list: 

•All integer types: TINYINT , SMALLINT , MEDIUMINT , INT  ( INTEGER ), and BIGINT . (This is the same as with partitioning by RANGE  and LIST .) 

Other numeric data types (such as DECIMAL  or FLOAT ) are not supported as partitioning columns. 

• DATE  and DATETIME . 

Columns using other data types relating to dates or times are not supported as partitioning columns. 

•The following string types: CHAR , VARCHAR , BINARY , and VARBINARY . 

TEXT  and BLOB  columns are not supported as partitioning columns. 

The discussions of RANGE COLUMNS  and LIST COLUMNS  partitioning in the next two sections assume that you are already familiar with partitioning based on ranges and lists as supported in MySQL 5.1 and later; 

