mysql-Fehler mit variable als Tabellennamen

Warum bin ich immer diese Fehlermeldung?

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

Fehler:

....to use near '@table_name' at line 1

Mein code ist korrekt, aber ich verstehe nicht warum....

  • Ich glaube nicht, können Sie Variablen für Tabellennamen in dynamic sql. In Oracle können Sie sicher nicht bei allen. Ich glaube, Sie haben verkettet, siehe Zeugen Jehovas Antwort
  • Was, wenn ich mit "delete frrom....wo" , den Zeugen Jehovas, die Antwort ist noch akzeptabel?
  • ja, ich denke, dass er so ziemlich alle deine Fragen beantwortet.
  • Ich bin immer Fehler mit diesem: "set @sql_text = concat('Delete from ', Tabellenname, 'WHERE id = pid');" "pid int"--> enthalten ist, in parameter..Irgendeine Hilfe?
  • fügen Sie ein Leerzeichen vor WHERE
  • ich hatte wirklich einen Fehler in der Where-Klausel Teil.
  • lassen Sie uns weiter, diese Diskussion im chat

InformationsquelleAutor Handy Manny | 2013-03-28
Schreibe einen Kommentar