56,677
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE test_procedure()
BEGIN
create TABLE if not EXISTS temp_table(
id int,
columnname varchar(20)
);
END
CREATE PROCEDURE p_drop_table(temp_tablename varchar(20))
BEGIN
SET @SQLSTR = CONCAT('DROP TABLE IF EXISTS ', temp_tablename, ";");
PREPARE STMT FROM @SQLSTR;
EXECUTE STMT;
DROP PREPARE STMT;
END
CREATE FUNCTION test_function(idValue INT, columnName VARCHAR(20))
RETURNS INT
BEGIN
CALL p_drop_temp_table('temp_table');
CALL temp_procedure();
INSERT INTO temp_table VALUES (idValue, columnName);
RETURN idValue;
END;
SELECT test_function(123, '456');
[Err] 1336 - Dynamic SQL is not allowed in stored function or trigger