在mysql上分区表时出错#1526

时间:2021-09-29 04:19:30

Sorry, I don't know English, but I need help :(

对不起,我不懂英文,但我需要帮助:(

I'm using partitioning by LIST COLUMNS by ALTER TABLE statement My table :

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

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

It's haven't key I have more than 900.000 records in the current. After inserting, I tried partitioning table by LIST COLUMNS :

它没有关键,我目前有超过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')
)

After runned :

运行后:

#1526 - Table has no partition for value from column_list

#1526 - 表没有column_list的值分区

MySQL returned me this error, I can not find support from Oracle page. I hope you will help me. Thanks

MySQL给我发了这个错误,我找不到Oracle页面的支持。我希望你能帮助我。谢谢

2 个解决方案

#1


2  

#1526 - Table has no partition for value from column_list

#1526 - 表没有column_list的值分区

The error message is telling you that there is a value in your data in one of the columns you have chosen for partitioning that is not accounted for in your defined partitions.

该错误消息告诉您,您选择用于分区的其中一列中的数据中存在一个值,该值未在您定义的分区中计算。

In this case, there is something in the "company" field that cannot be placed into any of the partitions. For instance, on some record, company="Blackberry." MySQL cannot put this row into any of your partitions.

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

#2


1  

LIST partitioning allow only Integer values. If you want to use columns with varchar partitioning use HASH or KEY PARTITIONS. Besides partition can only be used on columns that have primary or unique attribute.

LIST分区仅允许Integer值。如果要使用具有varchar分区的列,请使用HASH或KEY PARTITIONS。除了partition之外,只能在具有primary或​​unique属性的列上使用。

#1


2  

#1526 - Table has no partition for value from column_list

#1526 - 表没有column_list的值分区

The error message is telling you that there is a value in your data in one of the columns you have chosen for partitioning that is not accounted for in your defined partitions.

该错误消息告诉您,您选择用于分区的其中一列中的数据中存在一个值,该值未在您定义的分区中计算。

In this case, there is something in the "company" field that cannot be placed into any of the partitions. For instance, on some record, company="Blackberry." MySQL cannot put this row into any of your partitions.

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

#2


1  

LIST partitioning allow only Integer values. If you want to use columns with varchar partitioning use HASH or KEY PARTITIONS. Besides partition can only be used on columns that have primary or unique attribute.

LIST分区仅允许Integer值。如果要使用具有varchar分区的列,请使用HASH或KEY PARTITIONS。除了partition之外,只能在具有primary或​​unique属性的列上使用。