首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分区和表之间的非匹配属性‘即时列(S)’

问分区和表之间的非匹配属性‘即时列(S)’
EN

Database Administration用户
提问于 2018-08-24 00:32:46
回答 1查看 364关注 0票数 0

我有一个程序,它经常用一个表交换一个分区。

MyTable是一个分区表,而MyTableTemplate是这个表的空副本,具有相同的结构,但没有分区。

这一进程如下:

代码语言:javascript
复制
CREATE TABLE tmp LIKE MyTableTemplate;

INSERT INTO tmp VALUES (...);
// more inserts...

ALTER TABLE MyTable EXCHANGE PARTITION p1 WITH TABLE tmp;
DROP TABLE tmp;

到目前为止,它运行得很好,直到我需要在表中添加一列:

代码语言:javascript
复制
ALTER TABLE MyTable         ADD COLUMN someColumn TINYINT(1) UNSIGNED NULL DEFAULT NULL;
ALTER TABLE MyTableTemplate ADD COLUMN someColumn TINYINT(1) UNSIGNED NULL DEFAULT NULL;

现在,当我运行EXCHANGE PARTITION WITH TABLE时,我得到以下消息:

一般错误:分区和表之间的非匹配属性‘即时列(S)’

奇怪的是,如果我没有在最后一个位置添加列:

代码语言:javascript
复制
ALTER TABLE ... ADD COLUMN ... AFTER someField;

...then分区交换工作正常!

这是"**INSTANT COLUMN(s)** attribute“,我做错了什么?

这是个虫子吗?我使用的是MySQL 8.0.12。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-08-24 09:49:35

在ALGORITHM=INPLACE语句中显式地指定ALTER TABLE (如果表的引擎不支持就地支持的话)。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/215743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档