Как обратиться к таблице по ее имени, хранящейся в переменной?

Сергей Тарасов

Профессор
Как обратиться к таблице по ее имени, хранящейся в переменной?

Собственно Сабж:

Есть переменная

PHP:
DECLARE work_table_name_folder VARCHAR(255);
Нужно сделать вызов

PHP:
TRUNCATE TABLE work_table_name_folder;
Пишет Table 'price.work_table_name_folder' doesn't exist , что собственно и понятно... :)
Как заставить MySQL использовать именно значение пременной?

Заранее спасибо.
 

Фанат

oncle terrible
Команда форума
Сергей Тарасов
ну, ты бы, может, весь текст тестовой процедуры привел?
 

nalim

Новичок
Re: Как обратиться к таблице по ее имени, хранящейся в переменной?

DECLARE
 

Сергей Тарасов

Профессор
*****


BEGIN
DECLARE work_table_name_folder VARCHAR(255);
SET @work_table_name_folder = 'a';
TRUNCATE TABLE work_table_name_folder;
END

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

TRUNCATE TABLE `a`;

nalim

Причем тут DECLARE ???
 

Апельсин

Оранжевое создание
Только при помощи prepared statements.

Код:
mysql> create table a(id int);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into a values(1);
Query OK, 1 row affected (0.00 sec)

mysql> set @tbl_name='a';
Query OK, 0 rows affected (0.00 sec)

mysql> select @sql:=concat('truncate table ',@tbl_name);
+-------------------------------------------+
| @sql:=concat('truncate table ',@tbl_name) |
+-------------------------------------------+
| truncate table a                          |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> prepare stmt from @sql;
Query OK, 0 rows affected (0.00 sec)
Statement prepared

mysql> execute stmt;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from a;
Empty set (0.00 sec)
 
Сверху