创建具有分区语法错误的表:MySQL
我在使用分区创建MySQL表时出错创建具有分区语法错误的表:MySQL,mysql,sql,partitioning,create-table,Mysql,Sql,Partitioning,Create Table,我在使用分区创建MySQL表时出错 CREATE TABLE employees ( context VARCHAR(25), id INT ) PARTITION BY LIST(context) ( PARTITION pNorth VALUES IN('ads','asd') ); 它给出: 错误1064 42000:值必须与asd'附近的分区函数的类型相同 “在6号线 请帮帮我。我认为这里的问题是您试图在VARCHAR数据类型列上进行分区。对于列表分区,
CREATE TABLE employees (
context VARCHAR(25),
id INT
)
PARTITION BY LIST(context) (
PARTITION pNorth VALUES IN('ads','asd')
);
它给出:
错误1064 42000:值必须与asd'附近的分区函数的类型相同
“在6号线
请帮帮我。我认为这里的问题是您试图在VARCHAR数据类型列上进行分区。对于列表分区,必须引用整型列。发件人: MySQL中的列表分区类似于许多数据库中的范围分区 方式。与按范围分区一样,每个分区都必须显式 定义这两种分区类型之间的主要区别是 在列表分区中,定义并选择每个分区 基于列值在一组值之一中的成员身份 列表,而不是在一组连续的值范围中。 这是通过使用partitionbylistexpr实现的,其中expr是一列 值或基于列值并返回 整数值,然后通过值定义每个分区 在值列表中,其中值列表是以逗号分隔的 整数 当然是误导性的错误 编辑 您应该注意的是按列表列进行分区,而不是通过列表进行分区。因此:
我认为这里的问题是,您试图在VARCHAR数据类型列上进行分区。对于列表分区,必须引用整型列。发件人: MySQL中的列表分区类似于许多数据库中的范围分区 方式。与按范围分区一样,每个分区都必须显式 定义这两种分区类型之间的主要区别是 在列表分区中,定义并选择每个分区 基于列值在一组值之一中的成员身份 列表,而不是在一组连续的值范围中。 这是通过使用partitionbylistexpr实现的,其中expr是一列 值或基于列值并返回 整数值,然后通过值定义每个分区 在值列表中,其中值列表是以逗号分隔的 整数 当然是误导性的错误 编辑 您应该注意的是按列表列进行分区,而不是通过列表进行分区。因此: 没有提到列作为关键字。 尝试从查询中删除列:
CREATE TABLE ...
)
PARTITION BY LIST (context) (
PARTITION pNorth VALUES IN('ads','asd')
)
没有提到列作为关键字。
尝试从查询中删除列:
CREATE TABLE ...
)
PARTITION BY LIST (context) (
PARTITION pNorth VALUES IN('ads','asd')
)
正如@Bill Karwin所指出的。。
在MySQL 5.1中,只能使用整数进行列表分区。在MySQL 5.5中,他们添加了使用其他数据类型创建列表列的功能。正如@Bill Karwin指出的那样。。
在MySQL 5.1中,只能使用整数进行列表分区。在MySQL 5.5中,他们添加了使用其他数据类型创建列表列的功能。您可能会发现,与合适的索引相比,按列表没有任何性能优势
.您可能会发现,与合适的索引相比,“按列表”没有任何性能优势
.请阅读此错误,因为在按列表划分的分区中,每个分区都是通过值列表中的值定义的,其中值列表是以逗号分隔的整数列表。有关详细信息,请参阅此处:请阅读此错误,因为在按列表划分的分区中,每个分区都是通过值列表中的值定义的,其中value_list是一个逗号分隔的整数列表。有关详细信息,请参阅此处:@Deepshikha。。但是这个文档中给出的第一个例子怎么样。该列表中的值_列表似乎包含字符串。+1正确。在MySQL 5.1中,只能使用整数进行列表分区。在MySQL 5.5中,他们添加了使用其他数据类型进行列表列的功能。建议阅读文档。@Deepshikha。。但是这个文档中给出的第一个例子怎么样。该列表中的值_列表似乎包含字符串。+1正确。在MySQL 5.1中,只能使用整数进行列表分区。在MySQL 5.5中,他们添加了使用其他数据类型进行列表列的功能。建议阅读文档。是在MySQL 5.5中引入的。是在MySQL 5.5中引入的。