Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL PREPARE-Anweisung in gespeicherten Prozeduren

Sie können nur SQL vorbereiten und ausführen, das ein String-Literal ist oder eine benutzerdefinierte Variable die den Text der Anweisung enthält.

Versuchen Sie Folgendes:

USE mydb;

DROP PROCEDURE IF EXISTS execSql;
DELIMITER //

CREATE PROCEDURE execSql (IN sqlq VARCHAR(5000)) COMMENT 'Executes the statement'
BEGIN
  SET @sqlv = sqlq;
  PREPARE stmt FROM @sqlv;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
END //

DELIMITER ;