Mysql
 sql >> Base de données >  >> RDS >> Mysql

Instruction MySQL PREPARE dans les procédures stockées

Vous ne pouvez préparer et exécuter que du SQL qui est un littéral de chaîne ou une variable définie par l'utilisateur qui contient le texte de la déclaration.

Essayez ceci :

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 ;