Создание таблицы MySQL с именем переменной

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

A+ A-

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

Это была интригующая проблема , и потребовалось довольно много исследований в Интернете , прежде чем я смог найти решение. Решение состоит в том, чтобы использовать PREPARE заявление. Вот код, который работал (я Обрезая CREATE TABLE и INSERT INTO заявлений, чтобы сделать его более удобным для чтения):

 DELIMITER $$ 
 DROP PROCEDURE IF EXISTS `tdb_new`.SP_createTempRankTable $$ 
 CREATE DEFINER = `root` @` localhost` ПРОЦЕДУРА SP_createTempRankTable (В TABLENAME VARCHAR (200)) 
 НАЧАТЬ 
 SET @ dropTab = CONCAT ( "DROP TABLE IF EXISTS", TABLENAME); 
 SET @ CREATETAB = CONCAT ( "CREATE TABLE", TABLENAME "(tmp_template_id VARCHAR (10))"); 
 SET @ insertTab = CONCAT ( "INSERT INTO", TABLENAME "(tmp_template_id) ВЫБОР tmp_template_id из шаблона"); 
 ГОТОВИШЬ stmtDrop ОТ @dropTab; 
 ВЫПОЛНИТЬ stmtDrop; 

 ГОТОВИШЬ stmtCreate ОТ @createTab; 
 ВЫПОЛНИТЬ stmtCreate; 
 ГОТОВИШЬ stmtInsert ОТ @insertTab; 
 ВЫПОЛНИТЬ stmtInsert; 
 END $$ 
 DELIMITER; 

Передача имени таблицы в качестве переменной CREATE TABLE, INSERT INTO и DROP TABLE (и, вероятно, много других) заявлений не будет работать. Подготовленные заявления являются выход.

Надеюсь, что это было бы помочь кому-то! Пожалуйста, не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы. Я буду счастлив, чтобы попытаться помочь вам. Благодарим Вас за использование TechWelkin.

Ads

Поделиться

последний

Лучшие альтернативы Ubuntu искать, если вы Linux Lover

Давайте начнем знакомство с чем-то; простой, но немного не ...

Как добавить подпись в Gmail Входящие - Добавить подпись Google в Gmail

Входящие с помощью Google была одна из лучших вещей, которы...

Еженедельно Tech News: Nokia, Google и Nintendo

Привет всем, это Пятница, 3 марта, и так же, как всегда, мы...

Raspberry Pi Проекты для начинающих - Что вы можете сделать с Raspberry Pi

Raspberry Pi представляет собой серию малой мощности, одноп...

Лучший VPN для Android 2017 года - Как использовать VPN в Android

Прошли те дни, когда виртуальные частные сети были только д...

Комментарии