Рассмотрим:
SET @PREFIX='DEV_';
SET @REFRESHDB=CONCAT(@PREFIX,'Refresh');
CREATE TABLE @REFRESHDB.`Metadata`
(
`Key` VARCHAR(30) NOT NULL,
`Value` VARCHAR(30) NOT NULL,
PRIMARY KEY (`Key`)
) ENGINE = InnoDB;
INSERT INTO @REFRESDB.`Metadata` (`Key`, `Value`) VALUES ("Version", "0");
Это не похоже на то, что mysql возвращается с:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '@REFRESHDB.Metadata`
Насколько я могу судить, я сделал все правильно в соответствии с документацией. Тем не менее, MySQL говорит, что это запрещено. Является ли это некоторым ограничением MySQL (не позволяя использовать переменные как идентификаторы) или что-то еще?