2014-09-15 3 views
0

Я пишу сценарий SQL для переименования многих таблиц в базе данных MySQL. Я хотел бы изменить префикс на новое значение. Код, который я использую, показан ниже. Можно использовать переменные в команде «переименовать таблицу»?Как переименовать таблицу в MySQL

Спасибо.

set @oldTable = 'j5xqy_banner_clients'; 
set @newTable = 'p5gsk_banner_clients'; 

rename table @oldTable to @newTable 

ответ

2

Вы можете сделать это, но вы должны будете использовать подготовленное заявление:

SET @oldTable = 'a_b'; 
SET @newtable = 'b_b'; 
SET @sql = CONCAT('RENAME TABLE ', @oldTable, ' TO ', @newtable); 

PREPARE stmt1 FROM @sql; 
EXECUTE stmt1; 
+0

Спасибо, что сработало. – UltraJ

1

Хороший способ запоминания правила для этого:

Переменные и параметры могут использоваться в SQL только там, где вы в противном случае использовали бы единственное значение , а не там, где вы использовали бы идентификатор (имя столбца, имя таблицы и т. д.) или ключевое слово SQL или выражение.

Любой динамический контент, который вы хотите в синтаксисе SQL, должен находиться там до, он разобран. Вот почему он работает, если вы создаете строку, а затем готовите/выполняете ее, как показано в ответе от @sgeddes.

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