1
Я написал эту функцию:MySQL - функция, которая возвращает выполнение Value
delimiter //
CREATE FUNCTION randomDefVal(val varchar(30), tableName varchar(30))
returns varchar(30)
BEGIN
SET @query = concat('SELECT ',val,' FROM ',tableName,' ORDER BY rand() LIMIT 1;');
SET @result = NULL;
PREPARE stmt1 FROM @query;
return (EXECUTE stmt1);
END//
Но у меня есть ошибка в последней строке:
SQL Error (1336): Dynamic SQL is not allowed in stored function or trigger
что говорит о том, что я не могу писать «возвращать (ВЫПОЛНИТЬ stmt1);» Как я могу вернуть значение, которое будет результатом оператора EXECUTE?
Я получаю эту ошибку: ** 'SQL Error (1336): Dynamic SQL не допускается в сохраненной функции или триггере ** – hjpotter92