sql >> Databáze >  >> RDS >> Mysql

JDBC PreparedStatement má za následek chybu syntaxe MySQL

Ve většině databází nemůžete parametrizovat názvy objektů, jako jsou názvy tabulek, v MySQL teoreticky můžete, protože MySQL Connector/J ve výchozím nastavení nepoužívá parametry na straně serveru, ale místo toho přepisuje dotaz před jeho odesláním na server. Hodnota však bude vložena jako řetězec v uvozovkách a názvy objektů nemohou být řetězce v uvozovkách, takže to stále nebude fungovat.

Takže INSERT INTO ? nebo SELECT ... FROM ? nebude fungovat, protože vytváří INSERT INTO 'theTable' nebo SELECT ... FROM 'theTable' .

Názvy objektů musí být součástí skutečného dotazu. Nepoužívejte pro ně parametry. Většina ostatních databází (nebo jejich ovladačů) by vyvolala výjimku pro parametr na této pozici.



  1. Oracle Date – Jak přidat roky k datu

  2. Plánování diskového prostoru pro databáze

  3. 3 způsoby, jak najít pozici podřetězce v řetězci v MySQL

  4. Porovnejte varchar s char