在mysql上分区表时出错#1526

时间:2012-08-14 07:53:56

标签: mysql partitioning

抱歉,我不懂英语,但我需要帮助:(

我正在使用LIST COLUMNS按ALTER TABLE语句进行分区 我的表:

table member_list: 
id int,
name varchar(255),
company varchar(255),
cell_phone varchar(20)

它没有关键 我目前有超过900.000条记录。插入后,我尝试按LIST COLUMNS分区表:

alter table member_list
partition by list columns(company)(
    partition p1 values in ('Lavasoft','Cakewalk','Lycos'),
    partition p2 values in ('Adobe','Vivoo','Apple Systems','Sibelius'),
    partition p3 values in ('Finale','Borland','Macromedia','FPT'),
    partition p4 values in ('Chami','Yahoo','Google','Altavista')
)

运行后:

#1526 - 表格没有来自column_list的值的分区

MySQL回复了我这个错误,我无法从Oracle页面找到支持。我希望你能帮助我。感谢

2 个答案:

答案 0 :(得分:2)

#1526 - 表格没有来自column_list的值的分区

错误消息告诉您,您选择用于分区的其中一列中的数据中存在值,而这些列未在您定义的分区中进行说明。

在这种情况下,“公司”字段中的某些内容无法放入任何分区。例如,在一些记录上,公司=“黑莓”。 MySQL无法将此行放入任何分区。

答案 1 :(得分:1)

LIST分区仅允许整数值。如果要使用具有varchar分区的列,请使用HASH或KEY PARTITIONS。除了分区,只能用于具有主要或唯一属性的列。