Создать столбец, копирующий данные из другого столбца - PullRequest
0 голосов
/ 19 сентября 2018

Я использую MySQL и хочу добавить столбец в таблицу, но это значение по умолчанию, я хотел бы скопировать данные из другого столбца, например:

У меня есть тест таблицы с 2простые столбцы:

SELECT * FROM TEST

+----+-------------+
| ID | DESCRIPTION |
+----+-------------+
|  1 | test 1      |
|  2 | test 2      |
|  3 | test 3      |
|  4 | test 4      |
+----+-------------+

Я хотел бы добавить столбец в той же таблице, исходя из данных описания, поэтому, если я запущу:

ALTER TABLE TEST ADD COLUMN DESCRIPTION2 VARCHAR(20)

, я получу:

SELECT * FROM TEST

+----+-------------+--------------+
| ID | DESCRIPTION | DESCRIPTION2 |
+----+-------------+--------------+
|  1 | test 1      | test 1       |
|  2 | test 2      | test 2       |
|  3 | test 3      | test 3       |
|  4 | test 4      | test 4       |
+----+-------------+--------------+

Я мог бы легко сделать это с помощью простого обновления после таблицы изменения, но поскольку таблица, которую я собираюсь сделать, является гигантской, я бы предпочел сделать это в одном выражении для увеличения производительности, но яне знаю, возможно ли это, поскольку я не нашел ничего связанного с этим вопросом в документации по MySQL.

Просто чтобы быть уверенным, я попытался запустить:

ALTER TABLE TEST ADD COLUMN DESCRIPTION2 VARCHAR(20) DEFAULT `DESCRIPTION`

, но этонарушение синтаксиса

Есть ли лучший способ сделать это, а не обновление?

1 Ответ

0 голосов
/ 19 сентября 2018

Вы не можете изменить структуру таблицы и обновить данные в одном выражении.Вам нужно использовать ALTER TABLE и UPDATE отдельно, если это не сгенерированный столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...