ХПА Определения:MySQL выбрать из динамической базы данных и таблицы запроса
DECLARE dbName varchar(255);
DECLARE tableName varchar(255);
DECLARE fullPath varchar(255);
DECLARE conditions varchar(255);
SET dbName = idbname;
SET tableName = itablename;
SET fullPath = CONCAT("'",dbName,"'",'.',"'",tableName,"'");
SET checkExists = 0;
Я создаю хранимую процедуру, где имя_бд и имя_таблицы динамичны, однако я застрял на выборе аспекта этого запроса.
Я пытаюсь вернуть _test. user
со значениями, переданными в хранимую процедуру.
SELECT count(*) INTO checkExists FROM `_test`.`user` WHERE id = 1;
Однако эта линия выдает ошибку
SELECT count(*) INTO checkExists FROM fullPath WHERE id = 1;
Ошибка:
Procedure execution failed
1146 - Table 'dbname.fullpath' doesn't exist
Я также попытался CONCAT(), как этот
set conditions = CONCAT('SELECT count(*) INTO ',checkExists, ' FROM ', fullPath, ' WHERE id=', 1);
Хау ver, я не могу понять, как использовать это при выборе? Помощь приветствуется.
Посмотрите, поможет ли это: http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-prepared-statements.html – PaulF
Да, подготовленные операторы будут работать с моим сообщением concat. Я пытаюсь выяснить, почему я не могу сделать это, обычно выбирая, передавая переменную. Или, если это возможно – Haris