#mysql #indexing
Вопрос:
Я создал следующую таблицу —
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 |
Здесь я могу создать FULLTEXT
ключевые ft_col
охватывающие столбцы column1
и column2
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);
Комментарии:
1. Что случилось, когда ты попробовал это сделать?
2. @user207421 Я не знаю синтаксиса, как это попробовать?
Ответ №1:
Ваш синтаксис 2-Alter выглядит хорошо (без ->
). Это тоже должно сработать:
ALTER TABLE fruits
DROP INDEX ft_col,
ADD FULLTEXT ft_col (column1, column2);
Вы не можете сделать, как следует из названия, «добавить столбец в существующий индекс».
Там термины «индекс» и «ключ» в основном взаимозаменяемы.
Комментарии:
1. Я скопировал код с моего терминала Ubuntu, в терминале
->
автоматически генерируется в начале каждой строки. Спасибо вам за ответ.