usar tabla salida procedimientos procedimiento pasar parametros parametro para nombre mostrar ejercicios ejecutar datos como almacenados almacenado sql mysql stored-procedures mysql-error-1146

tabla - procedimiento almacenado sql server select



En MySQL: ¿Cómo pasar un nombre de tabla como procedimiento almacenado y/o argumento de función? (1)

Las declaraciones preparadas son lo que necesitas.

CREATE PROCEDURE `test1`(IN tab_name VARCHAR(40) ) BEGIN SET @t1 =CONCAT(''SELECT * FROM '',tab_name ); PREPARE stmt3 FROM @t1; EXECUTE stmt3; DEALLOCATE PREPARE stmt3; END $$

Por ejemplo, esto no funciona:

DELIMITER // CREATE PROCEDURE countRows(tbl_name VARCHAR(40)) BEGIN SELECT COUNT(*) as ct FROM tbl_name; END // DELIMITER ; CALL countRows(''my_table_name'');

Produce:

ERROR 1146 (42S02): Table ''test.tbl_name'' doesn''t exist

Sin embargo, esto funciona como se esperaba:

SELECT COUNT(*) as ct FROM my_table_name;

¿Qué sintaxis se requiere para usar un argumento como un nombre de tabla en una instrucción select? ¿Esto es posible?