2013-05-07 2 views
2

я нашел несколько сценариев, похожих на это ниже, в Интернет, что дает предварительный просмотр, как все имена таблиц будут выглядеть, как только я огонь.Пушку скрипт:Переименовать tablenames в прописные

select concat('RENAME TABLE ', TABLE_NAME, ' TO ', UPPER(TABLE_NAME), ';') from information_schema.TABLES where TABLE_SCHEMA = 'your_db' 

Но что мне нужно, это который фактически обновляет имена таблиц в db, а не просто позволяет мне просматривать имена.

Я знаю этих приятелями:

lower_case_table_names = 1 
lower_case_file_system = 1 

, но это не вариант из-за того, что я не могу вносить изменения в ini-файл на моем домене - так, а не придется переименовать каждый таблица в Интернете Я предпочитаю простой скрипт, который сразу переименовывает (и сохраняет) все имена таблиц ... - и как бы выглядел такой сценарий обновления ...?

+0

Почему вы хотите это сделать? Не являются ли большинство случаев нечувствительными к регистру? – Strawberry

+1

'update information_schema.TABLES set TABLE_NAME = ВЕРХНИЙ (TABLE_NAME) где TABLE_SCHEMA = 'your_db'' У вас такое? – Joddy

ответ

1

Вот то, что вы могли бы хотеть рассмотреть:

Usage Notes for the INFORMATION_SCHEMA Database 
    Although you can select INFORMATION_SCHEMA as the default database with a 
    USE statement, 
    you can only read the contents of tables, 
    not perform INSERT, UPDATE, or DELETE operations on them. 

Ссылка: http://dev.mysql.com/doc/refman/5.5/en/information-schema.html

Вот еще одна ссылка explaning обновления на проблемы информационной схемы:

mysql root permission to update information_schema error

И комментарий:

https://stackoverflow.com/a/3438369/362574

Как Реализована таблица информация схемы в MySQL:

https://dba.stackexchange.com/questions/3335/how-is-information-schema-implemented-in-mysql

Комментарий:

https://dba.stackexchange.com/a/3336/12967

9

Я имел аналогичные проблемы, когда мой хостинг компания переместилась базы данных MySQL из Windows, в Linux, пришлось изменить имена всех таблиц в верхний регистр:

первого запуска в SQL окне phpmyadmin

select concat('rename table ', table_name, ' to ' , upper(table_name) , ';') from information_schema.tables where table_schema = 'your_schema_name';

это производит скрипт, который изменит имена всех таблиц на верхний регистр, скопирует скрипт и вставляет его в окно SQL и запускается.

+0

Так просто и хорошо работает. Спасибо! – dleerob

Смежные вопросы