Mysql
 sql >> база данни >  >> RDS >> Mysql

JDBC PreparedStatement води до синтактична грешка на MySQL

В повечето бази данни не можете да параметризирате имена на обекти като имена на таблици, в MySQL теоретично можете като MySQL Connector/J по подразбиране не използва параметри от страна на сървъра, но вместо това пренаписва заявката, преди да я изпрати до сървъра. Въпреки това стойността ще бъде вмъкната като низ в кавички, а имената на обекти не могат да бъдат низ в кавички, така че пак няма да работи.

Така че INSERT INTO ? или SELECT ... FROM ? няма да работи, тъй като създава INSERT INTO 'theTable' или SELECT ... FROM 'theTable' .

Имената на обектите трябва да са част от действителната заявка. Не използвайте параметри за тях. Повечето други бази данни (или техните драйвери) биха направили изключение за наличието на параметър в тази позиция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разберете кога е стартиран MySQL/MariaDB сървър

  2. Връзка с MySQL база данни с визуализация на Visual Studio 2013

  3. върнете номера на оригиналния ред на mySQL

  4. Актуализация на MySQL от една таблица в друга с условие, че не работи?

  5. Как да получите времето от низ в MySQL