Сообщение об ошибке JDBC (ошибка в вашем синтаксисе SQL; проверьте руководство …)

#mysql #jdbc

#mysql #jdbc

Вопрос:

Я играю с драйвером JDBC с Java и получаю следующее сообщение об ошибке:

У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ‘NUMBER(5) NOT NULL)’ в строке 1

МОЙ синтаксис SQL выглядит так:

 String createTableSQL = "CREATE TABLE dbuser1(" "USER_ID NUMBER(5) NOT NULL" ");";
  

Мне кажется, что с моим sql-оператором проблем нет. Что не так?

Ответ №1:

В MySQL нет NUMBER(5) типа данных, он должен быть INTEGER(5) . Смотрите Здесь документацию по всем типам данных MySQL

Ответ №2:

ЧИСЛО не является типом данных, поэтому вы получаете синтаксическую ошибку, поэтому

Вместо

 String createTableSQL = "CREATE TABLE dbuser1(" "USER_ID NUMBER(5) NOT NULL" ");";
  

используйте, если вам нужны только целочисленные значения в вашей таблице

 String createTableSQL = "CREATE TABLE dbuser1(" "USER_ID INTEGER(5) NOT NULL" ");";
  

или, если вы хотите использовать десятичные значения в своей таблице

  String createTableSQL = "CREATE TABLE dbuser1(" "USER_ID Decimal(5) NOT NULL" ");";
  

Для получения полного списка типов данных обратитесь к следующей ссылке

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

Ответ №3:

Изменить

 NUMBER(5)
  

Для

 INT(5)
  

поскольку MySQL не имеет NUMBER типа данных, вместо этого MySQL поддерживает все стандартные числовые типы данных SQL. Эти типы включают точные числовые типы данных ( INTEGER, SMALLINT, DECIMAL, and NUMERIC ), а также приблизительные числовые типы данных ( FLOAT, REAL, and DOUBLE PRECISION ).Ключевое INT слово является синонимом INTEGER . Обратитесь к числовым типам данных MySQL