В MySQL хранимые процедуры и функции обеспечивают мощный механизм для выполнения сложных операций в базе данных. Однако при работе с именами динамических таблиц возникают определенные ограничения.
для получения данных из таблицы, используя функцию, вы можете использовать запрос, такой как:
SELECT 'name' INTO myName FROM tableName WHERE >
, однако, с использованием этого подхода с именами динамических таблиц столкнется с ошибкой из -за замены фактического имени таблицы с помощью имени имени переменной. ВЫБИРАТЬ 'имя' ОТ ", табличное имя" ГДЕ >
, к сожалению, этот метод не поддерживается в функциях сохраненных процедур, так как MySQL запрещает динамический SQL в таких контекстах.
SET @GetName = CONCAT(" SELECT 'name' FROM ", tableName, " WHERE >
как альтернатива, вы можете создать хранимую процедуру с параметрами Out PAMEREMER:
для вызова этой процедуры с именами динамических таблиц, вы можете использовать следующий синтаксис:
CREATE PROCEDURE getName (IN tableName VARCHAR(50), IN myId INT(11), OUT myName VARCHAR(50)) BEGIN SET @GetName = CONCAT('SELECT name INTO @var1 FROM ', tableName, ' WHERE>
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3