возможно ли присвоить переменной имя таблицы в процедуре?

AndreyKl

Новичок
возможно ли присвоить переменной имя таблицы в процедуре?

Пример того, что хотелось бы получить:

PHP:
DELIMITER |
CREATE PROCEDURE test()
BEGIN
  DECLARE t VARCHAR(255);
  SET t = 'table_name';
  SELECT * FROM t;
END |
DELIMITER ;
получаю ответ, что таблицы t не существует, что верно..
возможно ли в данном случае подставить вместо t значение t ?

-~{}~ 31.10.06 12:37:

забыл.. mysql50,
 

AndreyKl

Новичок
WP, спасибо.. но что-то не справляюсь..
PHP:
DELIMITER |
CREATE PROCEDURE test()
BEGIN
  DECLARE t VARCHAR(255);
  SET t := 'table_name';
  SELECT * FROM @t;
END |
DELIMITER ;

ERROR 1064 (42000): You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near '@t;
END' at line 5

DELIMITER |
CREATE PROCEDURE test()
BEGIN
  DECLARE t VARCHAR(255);
  SET t := 'table_name';
  SELECT * FROM t;
END |
DELIMITER ;

call test();
ERROR 1146 (42S02): Table 'test_new.t' doesn't exist
где я ошибаюсь?
и ещё попутно, если можно носом в мануал про @.. уже несколько раз видел, что люди используют, только вот найти в мануале что-то не получается...

-~{}~ 31.10.06 12:54:

вообще идея процедуры примерно такая:
PHP:
DELIMITER |
special_update_procedure( IN table_name VARCHAR(255) )
BEGIN
  --здесь сложный update для таблички table_name
END;
DELIMITER ;
 
Сверху