Форум пользователей MySQL
This statement was added in MySQL 5.1.7 but was found to be dangerous and was removed in MySQL 5.1.23.
И как теперь базы переименовывать?
#2 16.03.2011 13:33:07
rgbeast Администратор Откуда: Москва Зарегистрирован: 21.01.2007 Сообщений: 3877
Re: как переименовать базу данных?
Остановить MySQL переименовать каталог, запустить MySQL. Лучше не переимновывать, а сохранить старое название и создать символическую ссылку.
#3 16.03.2011 19:29:47
LazY _cмельчак Зарегистрирован: 02.04.2007 Сообщений: 845
Re: как переименовать базу данных?
Понятно..
Я так и не понял, почему они эту возможность убрали. Что за идиотизм..
#4 17.03.2011 01:26:05
paulus Администратор Зарегистрирован: 22.01.2007 Сообщений: 6756
Re: как переименовать базу данных?
Каталоги переименовывать опасно. Например, с innodb_file_per_table это
гарантирует, что таблички не подцепятся. И именно поэтому rename database
выкинули — это опасная операция.
#5 17.03.2011 16:43:41
LazY _cмельчак Зарегистрирован: 02.04.2007 Сообщений: 845
Re: как переименовать базу данных?
Я бы понял, если бы они именно поэтому RENAME DATABASE исправили, а не выкинули
#6 17.03.2011 21:40:02
paulus Администратор Зарегистрирован: 22.01.2007 Сообщений: 6756
Re: как переименовать базу данных?
Ммм.. Миш, ну как тут объяснить. Пусть у тебя в руках есть циркулярная пила
большого диаметра. Она большая, тяжелая и крутится быстро. Аналогом RENAME
DATABASE в этом примере будет тяжелый маховик, который приделывается к
лезвию для того, чтобы снизить нагрузку на двигатель, когда ты вдруг начинаешь
пилить толстый бетонный столб. Но, если ты когда-нибудь держал маховик в ру-
ках, ты знаешь, что один неудачный поворот — и эта штука движется совсем не
туда, куда ты хочешь. А если это насажено на циркулярную пилу, оно тебе в
лучшем случае обрезает ноги, а в худшем — голову. И правильное решение тут
не доработать конструкцию маховика, а оторвать его совсем
#7 18.03.2011 13:38:10
LazY _cмельчак Зарегистрирован: 02.04.2007 Сообщений: 845
Re: как переименовать базу данных?
Зато бетонные столбы теперь не спилить, а только выкапывать
В общем, как я понял, порядок действий такой:
1) Каталог переименовать
2) UPDATE mysql.db SET Db = ‘newname’ WHERE Db = ‘oldname’;
Что еще? Ничего не забыл?
Да, это для муисамной базы. А как быть с InnoDB?
#8 18.03.2011 21:06:19
paulus Администратор Зарегистрирован: 22.01.2007 Сообщений: 6756
Re: как переименовать базу данных?
Брр, зачем же ты раскручиваешь циркулярку веревкой? Второй пункт — дикое
непотребное зло, срочно сотри его
mysqldump | mysql — единственный правильный способ переименовывать базы,
содержащие innodb. И mysqlhotcopy — если все таблички MyISAM.
#9 18.03.2011 22:55:43
LazY _cмельчак Зарегистрирован: 02.04.2007 Сообщений: 845
Re: как переименовать базу данных?
Э, погоди. Мы щас именно о переименовании говорим.
mysqldump | mysql — это копирование.
Копирование отличается от переименования тем, что:
1. Все выданные на старую базу права придется выдавать заново на новую
2. Если база больших размеров, то это займет дофига системных ресурсов вообще.
Так что, выходит, именно переименовать вообще никак нельзя?
RENAME (Transact-SQL)
Переименовывает созданную пользователем таблицу в Azure Synapse Analytics. Переименовывает созданную пользователем таблицу, столбец в созданной пользователем таблице или базе данных в Система платформы аналитики (PDW).
Сведения в этой статье относятся только к Azure Synapse Analytics и Analytics Platform System (PDW):
- Чтобы переименовать базу данных в SQL Server, используйте хранимую процедуру sp_renamedb.
- Чтобы переименовать базу данных в службе базы данных SQL Azure, используйте инструкцию ALTER DATABASE (база данных SQL Azure).
- Поддерживается переименование изолированных выделенных пулов SQL (прежнее название — хранилище данных SQL). Переименование выделенного пула SQL в рабочих областях Azure Synapse Analytics в настоящее время не поддерживается.
- Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Синтаксис
-- Syntax for Azure Synapse Analytics -- Rename a table. RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name TO new_table_name [;]
-- Syntax for Analytics Platform System (PDW) -- Rename a table RENAME OBJECT [::] [ [ database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name [;] -- Rename a database RENAME DATABASE [::] database_name TO new_database_name [;] -- Rename a column RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name COLUMN column_name TO new_column_name [;]
Аргументы
RENAME OBJECT [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
Изменение имени определяемой пользователем таблицы. Указание таблицы для переименования с именем, состоящим из одной, двух или трех частей. Указание имени_новой_таблицы, состоящего из одной части.
RENAME DATABASE [::] [ database_name TO new_database_name
Область применения: Analytics Platform System (PDW)
Измените имя пользовательской базы данных с имени_базы_данных на новое_имя_базы_данных. Недопустимо переименование базы данных в следующие зарезервированные имена Analytics Platform System (PDW):
- master
- model
- msdb
- tempdb
- pdwtempdb1
- pdwtempdb2
- DWConfiguration
- DWDiagnostics
- DWQueue
RENAME OBJECT [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ]table_name COLUMN column_name TO new_column_name
Область применения: Analytics Platform System (PDW)
Изменение имени столбца в таблице.
Разрешения
Для выполнения этой команды требуется следующее разрешение:
Ограничения
Невозможно переименовать внешние таблицы, индексы и представления
Вы не можете переименовать внешние таблицы, индексы и представления. Вместо переименования можно удалить внешнюю таблицу, индекс или представление и затем создать этот объект повторно с новым именем.
Невозможно переименовать используемую таблицу
Вы не можете переименовать таблицу или базу данных во время использования. Для переименования таблицы требуется монопольная блокировка таблицы. Если таблица используется, может потребоваться завершить сеансы, которые используют таблицу. Для завершения сеанса можно использовать команду KILL. Используйте инструкцию KILL осторожно, так как при завершении сеанса для всей незафиксированной работы будет выполнен откат. Сеансы в Azure Synapse Analytics имеют префикс «SID». Префикс «SID» и номер сеанса необходимо указать при вызове команды KILL. В этом примере мы получаем список активных или неактивных сеансов и затем завершаем сеанс «SID1234».
Ограничения переименования столбцов
Вы не можете переименовать столбец, используемый для распределения таблицы. Кроме того, невозможно переименовывать столбцы во внешней или временной таблице.
Представления не обновляются
При переименовании базы данных все представления, в которых используется предыдущее имя базы данных, станут недействительными. Это поведение относится к представлениям как внутри, так и вне базы данных. Например, при переименовании базы данных Sales представления, содержащие SELECT * FROM Sales.dbo.table1 , станут недействительными. Чтобы устранить эту проблему, старайтесь не использовать имена из трех частей в представлениях или обновите представления так, чтобы в них использовалось новое имя базы данных.
При переименовании таблицы обновления имени таблицы в представлениях не происходит. Все представления внутри или вне базы данных, которые ссылаются на предыдущее имя таблицы, станут недействительными. Чтобы устранить эту проблему, обновите представления так, чтобы в них использовалось новое имя базы данных.
При переименовании столбца обновление представлений для их ссылки на это новое имя столбца не выполняется. Представления продолжат отображать старое имя столбца до выполнения инструкции ALTER VIEW. В некоторых случаях представления могут стать недействительными, в результате чего потребуется удалить их и создать заново.
Блокировка
Для переименования таблицы необходима совмещаемая блокировка для объекта базы данных, совмещаемая блокировка для объекта СХЕМЫ и монопольная блокировка таблицы.
Примеры
A. Переименование базы данных
Область применения: только Analytics Platform System (PDW)
В этом примере мы переименовываем пользовательскую базу данных AdWorks в AdWorks2.
-- Rename the user defined database AdWorks RENAME DATABASE AdWorks to AdWorks2;
При переименовании таблицы все объекты и свойства, связанные с этой таблицей, обновляются, так чтобы в них использовалось новое имя таблицы. Например, обновляются определения таблиц, индексы, ограничения и разрешения. Представления не обновляются.
Б. Переименование таблицы
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
В этом примере мы переименовываем таблицу Customer в Customer1.
-- Rename the customer table RENAME OBJECT Customer TO Customer1; RENAME OBJECT mydb.dbo.Customer TO Customer1;
При переименовании таблицы все объекты и свойства, связанные с этой таблицей, обновляются, так чтобы в них использовалось новое имя таблицы. Например, обновляются определения таблиц, индексы, ограничения и разрешения. Представления не обновляются.
В. Перемещение таблицы в другую схему
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
Если вы хотите переместить объект в другую схему, используйте инструкцию ALTER SCHEMA. Например, следующая инструкция перемещает элемент таблицы из схемы product в схему dbo.
ALTER SCHEMA dbo TRANSFER OBJECT::product.item;
Г. Завершение сеансов перед переименованием таблицы
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
Переименовать таблицу, которая сейчас используется, невозможно. Для переименования таблицы требуется монопольная блокировка таблицы. Если таблица используется, может потребоваться завершить сеансы, которые используют таблицу. Для завершения сеанса можно использовать команду KILL. Используйте инструкцию KILL осторожно, так как при завершении сеанса для всей незафиксированной работы будет выполнен откат. Сеансы в Azure Synapse Analytics имеют префикс «SID». Префикс SID и номер сеанса потребуется указать при вызове команды KILL. В этом примере мы получаем список активных или неактивных сеансов и затем завершаем сеанс «SID1234».
-- View a list of the current sessions SELECT session_id, login_name, status FROM sys.dm_pdw_exec_sessions WHERE status='Active' OR status='Idle'; -- Terminate a session using the session_id. KILL 'SID1234';
Д. Переименование столбца
Область применения: Analytics Platform System (PDW)
В этом примере столбец FName таблицы Customer переименовывается в FirstName.
-- Rename the Fname column of the customer table RENAME OBJECT::Customer COLUMN FName TO FirstName; RENAME OBJECT mydb.dbo.Customer COLUMN FName TO FirstName;
Дальнейшие действия
- sp_renamedb
- CREATE DATABASE (база данных SQL Azure)
Как переименовать базу данных в phpMyAdmin?
Последняя версия phpMyAdmin позволяет изменить название базы данных. Имейте в виду, что при изменении имени базы данных вам придется перенастроить права доступа пользователей и все скрипты, которые привязаны к этой базе данных.
Переименование базы данных
1. Войдите в cPanel.
2. Кликните на Базы данных MySQL:
3. Прокрутите страницу вниз до раздела Текущие базы данных.
4. Найдите базу данных, которую вы хотите переименовать и кликните на кнопку Переименовать. Запишите или запомните пользователя базы данных, уже указанного в базе данных. Эта информация понадобится вам при выполнении шага 2:
5. В новом окне введите имя новой базы данных и кликните Продолжить:
6. Вернитесь на главный экран cPanel, чтобы продолжить.
Изменение пользовательских разрешений
Вернитесь на главную страницу cPanel.
Нажмите на Базы данных MySQL.
Прокрутите страницу вниз до раздела Добавить пользователя в базу данных.
Выберите базу данных из списка (новое название должно отображаться).
Выберите пользователя базы данных из списка (того же, который был приявязан к этой базе данных).
Нажмите на кнопку Добавить:
На появившейся странице Управление привилегиями пользователя установите флажок Все привилегии:
Нажмите на кнопку Внести изменения.
Домен | Com домены на сайте Hostimul.com
Домен — означает имя веб-сайта, которое позволяет пользователям Интернета получать доступ к своему веб-сайту. Доступ к веб-сайту, не имеющему этого им..
Купить домен | Дешевые цены на домены в Hostimul.com
Купить домен — Нет необходимости тратить время на поиск надежной и прибыльной компании для покупки домена. Как команда Hostimul.com, мы предлагаем вам..
Дешевый Vps в Европе
Дешевый Vps в Европе в Hostimul.com — это виртуальный частный сервер. Вы можете купить это на Hostimul.com, где мы предоставляем виртуальные серве..
Vps в Европе
Наш Vps в Европе будет для вас отличным решением, если вы переросли среду общего хостинга и задаетесь вопросом, что делать дальше. Наши специалист..
Недорогой выделенный сервер
Недорогой выделенный сервер – это выделенный виртуальный сервер, услуга хостинга, при которой клиент полностью получает в личное пользование вирту..
Хостинг с большим дисковым пространством ✅
Хостинг с большим дисковым пространством предоставляет пользователям все преимущества безлимитной услуги. Хостинги предлагают клиентам разные усл..
Быстрый виртуальный хостинг✅
Ищете быстрый виртуальный хостинг ? В Hostimul вы найдете все, что вам нужно. Давайте уточним что такое виртуальный хостинг? Когда придет время вы..
Выделенный Сервер в Европе ✔️
Выделенный сервер в Европе, предлагаемый Hostimul.com станет для вас уникальной возможностью получить доступный и надежный сервер для вашего прое..
Купить Хостинг Дешево
Хотите купить хостинг дешево для вашего сайта ? Добро пожаловать в Hostimul.com, где найдете только выгодные тарифы. На рынке доступно несколько ..
Облачный хостинг
Решение выбрать облачный хостинг может быть продиктовано желанием иметь собственный сервер, и не платить за избыточную емкость жесткого диска, кот..
Хостинг недорогой
Ищете хостинг недорогой ? Hostimul.com будет для вас лучшим спутником по обеспечению вашего проекта наилучшей хостинговой услугой. В поисках самог..
Сервер для сайта
Надежный сервер для сайта необходим каждому, кто желает безопасный “ Дом ” для своего проекта-сайта. Крупному сайту, который интенсивно наполняет..
Сервер Аренда
Сервер аренда — это услуга, которая нужна особенно тем, кто имеет большой проект или сайт для безопасной и безотказной работы. Основные причины, ..
Виртуальный хостинг сайтов ✔️
Ищете виртуальный хостинг сайтов ? Hostimul будет для вас верным спутником по организации вашего проекта онлайн. Увеличьте скорость с помощью веб-..
Хостинг для wordpress Украина✔️
Услуга » Хостинг для wordpress Украина » в Hostimul является наиболее востребованной в силу своей надежности и качества обслуживания. Управляемые ..
Надежный Хостинг ✔️
Надежный хостинг доступен по адресу Hostimul.com по самым выгодным тарифам ! Владывая значительные средства в создание актуального и интересного с..
Хостинг выделенный сервер
Выбрать хостинг выделенный сервер для бизнеса не так просто, как кажется на первый взгляд. Одним из актуальных вариантов является выделенный серве..
Хостинг пробный период✅
Хостинг пробный период доступен в Hostimul.com на целый месяц с бесплатным доменом. Получите удобные услуги управления доменом вместе с учетной з..
Купить Хостинг Для Сайта ✅
Решили купить хостинг для сайта ? Вы пришли определенно по верному адресу ! Скорость сайта может сильно повлиять как на видимость вашей поисковой ..
Хостинг для интернет магазина
Ищете хостинг для интернет магазина ? Hostimul будет для вас наиболее лучшим вариантом для безопасной и отказоустойчивой деятельности вашего проек..
Хостинг бесплатный ✔️
Выберите хостинг бесплатный для оптимизации вашего бизнеса. Наши хостинговые услуги также распространяют свои услуги на таких администраторов веб-..
Vps в Сша ☑️
Хотитн продвижения бизнеса онлайн ? Будем рады предложить вам лучшие серверные опции, которые выведут возможности бизнеса на новый уровень. Vps ..
Vps в Украине ☑️
Vps в Украине стал самым популярным среди всех. Технология виртуализации используется службой хостинга, которая предоставляет частные вы..
Vps в Германи ✅
Vps Германи с использованием Hostimul.com означает, что вы можете быть уверены, что сможете использовать дополн..
Лучший хостинг ☑️
Хотите продвижение вашего проекта онлайн ? Для этого необходим лучший хостинг, которого вы найдете на Hostimul.com, являющийся лидером по хостинго..
Аренда виртуального сервера ☑️
Перед тем, как решитесь аренда виртуального сервера вам необходимо решить какой трафик ваш нужен. Виртуальный сервер это — хостинг-услуга сервер, ..
Выделенный сервер ☑️
Выделенный сервер идеально подходит для высоконагруженных сайтов, в особенности для игровых порталов, для больших интернет магазинов с высокой пос..
Купить хостинг ☑️
Купить хостинг — это процесс не самый легкий и требует учет определенных аспектов. Очевидно, чтобы ваш сайт был скоростным и ..
Виртуальный Сервер ☑️
Виртуальный сервер — это сервер, который совместно использует аппаратные и программные ресурсы с другими операционными систем..
Vps в Москве ✅
Заказать Vps в Москве через hostimul.com будет для вас очень выгодно и доступно. Независимо от того, устанавливается ли пользовательское приложен..
Baranova 2869/35, Žižkov,
130 00 Prague 3, Czechia
© 2023 HOSTIMUL S.R.O. ВСЕ ПРАВА ЗАЩИЩЕНЫ
Как переименовать базу данных?
Огромнейшее спасибо. Мучался не 1 час, адекватной информации нигде не было. Вот код, вдруг кому ешё понадобиться. mysql_query(«CREATE DATABASE NEW_DB «); $res = mysql_query(«SHOW TABLES FROM OLD_DB»); while ($result = mysql_fetch_assoc($res)) < mysql_query("RENAME TABLE OLD_DB . TO NEW_DB . ;"); > mysql_query(«DROP DATABASE OLD_DB «);$result['Tables_in_OLD_DB']>
18 сен 2014 в 18:52
@Ford, Если вам дан исчерпывающий ответ, отметьте его как верный (нажмите на галку рядом с выбранным ответом).
18 сен 2014 в 19:30
Насколько я помню, команду для переименования базы данных убрали из mysql.
Чтобы переименовать, можно воспользоваться phpmyadmin, по-моему, там была такая возможность.
Если у вас база с типом MyISAM, то можно просто переименовать каталог базы данных.
Но мне кажется, что проще скопировать старую базу в новую с нужным названием и затем удалить старую.
P.S. Ну и, конечно, ОБЯЗАТЕЛЬНО не забывайте сделать бекап перед всеми манипуляциями.
UPD
забыл сказать, если вы будете копировать базу с новым нужным именем, то не забудьте проверить права на новую базу данных.
Отслеживать
11 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
ответ дан 18 сен 2014 в 15:23
434 1 1 золотой знак 4 4 серебряных знака 13 13 бронзовых знаков
да, пишут, что RENAME DATABASE был добавлен в 5.1.7 , сочтён небезопасным, и удалён уже в версии 5.1.23 .
