Как убрать префикс из имени каждого столбца таблицы в MySQL? - PullRequest
0 голосов
/ 25 февраля 2019

Имея таблицу с именем "mytable" в MySQL, какие команды sql я должен выполнить, чтобы удалить префикс "example_" из имени каждого столбца таблицы без явного переименования всех имен столбцов по одному?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Чтобы повторить мой комментарий, вы можете использовать INFORMATION_SCHEMA.COLUMNS, чтобы MySQL создал запрос для вас;вам все равно придется запускать его отдельно, но если у вас есть много этих операций, это может сэкономить много печатания и поможет вам не упускать из виду что-то (хотя следует внимательно следить за результатамипрежде чем использовать их, чтобы убедиться, что ваши условия фильтрации не приводят к нежелательным изменениям.)

Прошло много времени с тех пор, как мне пришлось сделать что-то подобное, поэтому могут быть опечатки или другой небольшой синтаксисошибки, но он дает общее представление:

SELECT CONCAT('ALTER TABLE `', c.TABLE_NAME, '` '
    , GROUP_CONCAT(
         CONCAT('RENAME COLUMN `', c.COLUMN_NAME, '`'
            , ' TO '
            , '`', SUBSTRING(c.COLUMN_NAME, LEN('example_')), '`'
            ) 
         ORDER BY c.ORDINAL_POSITION)
    , ';'
   ) AS alterQuery
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_filtering_criteria
   AND c.COLUMN_NAME LIKE 'example_%'
   AND other_filtering_criteria
GROUP BY c.TABLE_NAME
ORDER BY c.TABLE_NAME
0 голосов
/ 25 февраля 2019

попробуйте этот код

`ALTER TABLE table_name
MODIFY COLUMN colname type,
MODIFY COLUMN colname type,
etc..,
etc..;`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...