Utiliser une variable pour la clause FROM
Posté : 10 juil. 2009, 19:27
Bonjour, j'aimerai aller chercher des informations dans une table dont j'aurai précédemment récupéré le nom par un SELECT INTO. Attention, le tout devant être dans une procédure. Voici la requête que j'ai faite et qui ne fonctionne pas :
L'erreur produite est la suivante :
Table 'leroyaum_lrdd1.v_table' doesn't exist
Visiblement, il ne comprend pas que je veux mettre la valeur de la variable.
La table ressource a pour structure :
CREATE TABLE IF NOT EXISTS `leroyaum_lrdd1`.`Ressource` (
`idRessource` INT NOT NULL AUTO_INCREMENT ,
`ressource_type` VARCHAR(45) NOT NULL ,
`idAssociated` INT NOT NULL ,
PRIMARY KEY (`idRessource`) )
ENGINE = InnoDB
Merci pour votre aide
Pierrefire
Code : Tout sélectionner
CREATE PROCEDURE `deleteRessource` (IN p_idRessource INT)
BEGIN
DECLARE v_table VARCHAR(45);
DECLARE v_id INT;
SELECT ressource_type, idAssociated INTO v_table, v_id
FROM Ressource
WHERE idRessource = p_idRessource;
DELETE FROM v_table
WHERE CONCAT('id', v_table) = v_id;
DELETE FROM Ressource
WHERE idRessource = p_idRessource;
END//Table 'leroyaum_lrdd1.v_table' doesn't exist
Visiblement, il ne comprend pas que je veux mettre la valeur de la variable.
La table ressource a pour structure :
CREATE TABLE IF NOT EXISTS `leroyaum_lrdd1`.`Ressource` (
`idRessource` INT NOT NULL AUTO_INCREMENT ,
`ressource_type` VARCHAR(45) NOT NULL ,
`idAssociated` INT NOT NULL ,
PRIMARY KEY (`idRessource`) )
ENGINE = InnoDB
Merci pour votre aide
Pierrefire