簡體   English   中英

MySQL:修改表以創建提供主鍵錯誤的分區

[英]MySQL: Alter table to create partition giving primary key error

我需要使用LIST COLUMNS分區對MySQL表進行分區。 我已經有了包含數據的表,因此我需要更改表以創建分區。

這是我在做什么。

示例架構:

CREATE TABLE mytable (
  id bigint(20) primary key auto_increment,
  .....
  status varchar(10)
);

更改我正在使用的表腳本:

ALTER TABLE mytable PARTITION BY LIST COLUMNS (status) 
( 
    PARTITION p1 VALUES IN (NULL), 
    PARTITION p2 VALUES IN ('SUCCESS'), 
    PARTITION p3 VALUES IN ('FAILED')
);

錯誤:PRIMARY KEY必須在表的分區功能中包含所有列

但是,當我嘗試創建一個沒有id列的表時,如下所示:

CREATE TABLE mytable (
  status varchar(10)
);

然后嘗試使用與上面相同的alter腳本創建分區,它起作用了。 那么,我是否在桌子上沒有ID的東西?

SQLFiddle:

工作: http//sqlfiddle.com/#!9 / c8a3d1

無法正常使用: http//sqlfiddle.com/#!9 / d06a1

好吧,我想我找到了解決方案。 我必須更改主鍵。 主鍵應同時包含id和status列,以便根據狀態進行分區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM