par
Pierrefire » 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 :
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//
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
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 :
[code]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//[/code]
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 :D
Pierrefire