Perché viene visualizzato questo errore?mysql utilizzando la variabile come nome tabella
CREATE DEFINER=`root`@`localhost` PROCEDURE `selectrecords`(tablename varchar(50))
begin
set @table_name=tablename;
set @sql_text=concat('Select * from @table_name');
prepare statement from @sql_text;
execute statement;
deallocate prepare statement;
end
Errore:
....to use near '@table_name' at line 1
Il mio codice è corretto, ma non capisco il motivo per cui ....
non credo che è possibile utilizzare le variabili per i nomi delle tabelle in SQL dinamico. In Oracle non puoi assolutamente. Penso che devi concatenare, vedi la risposta di JW – Sebas
@Sebas: Cosa succede se sto usando "cancella da .... dove", la risposta di JW è ancora accettabile? –
sì, penso che abbia praticamente risposto a tutte le tue domande. – Sebas