Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JDBC PreparedStatement powoduje błąd składni MySQL

W większości baz danych nie można sparametryzować nazw obiektów, takich jak nazwy tabel, w MySQL teoretycznie można, ponieważ MySQL Connector/J domyślnie nie używa parametrów po stronie serwera, ale zamiast tego przepisuje zapytanie przed wysłaniem go na serwer. Jednak wartość zostanie wstawiona jako ciąg w cudzysłowie, a nazwy obiektów nie mogą być ciągami w cudzysłowie, więc nadal nie będzie działać.

Więc INSERT INTO ? lub SELECT ... FROM ? nie zadziała, ponieważ tworzy INSERT INTO 'theTable' lub SELECT ... FROM 'theTable' .

Nazwy obiektów muszą być częścią rzeczywistego zapytania. Nie używaj dla nich parametrów. Większość innych baz danych (lub ich sterowników) zgłosiłaby wyjątek za posiadanie parametru w tej pozycji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL dzielony wiersz oddzielony przecinkami

  2. Canonical:Jak zapisać dane formularza HTML w bazie danych MySQL

  3. Tworzenie typu zmiennej ENUM w MySQL

  4. Zdalny dostęp do serwera MySQL przez tunel SSH

  5. MySQL BLOB a plik do przechowywania małych obrazów PNG?