【问题标题】:Can additional columns be added to an already existing index key?可以将其他列添加到已经存在的索引键中吗?
【发布时间】:2021-09-12 10:34:52
【问题描述】:

我创建了下表 -

SHOW CREATE TABLE fruits;

| fruits | CREATE TABLE `fruits` (
  `id` tinyint unsigned NOT NULL AUTO_INCREMENT,
  `column1` text,
  `column2` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

在这里,我可以创建一个FULLTEXTft_col 跨越列column1column2

ALTER TABLE fruits
    -> ADD FULLTEXT ft_col (column1, column2);

我的问题是,如果我忘记在查询中包含 column2 而是错误地包含 -

ALTER TABLE fruits
    -> ADD FULLTEXT ft_col (column1);

那么,现在有没有办法将索引键ft_col 添加到column2 中?

或者我必须删除密钥ft_col并重新创建它,如下所示 -

ALTER TABLE fruits
    -> DROP INDEX ft_col;
ALTER TABLE fruits
    -> ADD FULLTEXT ft_col (column1, column2);

【问题讨论】:

  • 你尝试的时候发生了什么?
  • @user207421 不知道语法怎么试?

标签: mysql indexing


【解决方案1】:

您的 2-Alter 语法看起来不错(没有 ->)。这也应该有效:

ALTER TABLE fruits
   DROP INDEX ft_col,
   ADD FULLTEXT ft_col (column1, column2);

正如标题所示,您不能“向现有索引添加列”。

“索引”和“键”这两个术语大多可以互换。

【讨论】:

  • 我已经从我的 Ubuntu 终端复制了代码,在终端 -> 是在每一行的开头自动生成的。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 2012-06-24
  • 1970-01-01
  • 2013-06-30
  • 2016-12-31
  • 2021-12-17
  • 1970-01-01
相关资源
最近更新 更多