#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" ");";
Для получения полного списка типов данных обратитесь к следующей ссылке
Ответ №3:
Изменить
NUMBER(5)
Для
INT(5)
поскольку MySQL не имеет NUMBER
типа данных, вместо этого MySQL поддерживает все стандартные числовые типы данных SQL. Эти типы включают точные числовые типы данных ( INTEGER, SMALLINT, DECIMAL, and NUMERIC
), а также приблизительные числовые типы данных ( FLOAT, REAL, and DOUBLE PRECISION
).Ключевое INT
слово является синонимом INTEGER
. Обратитесь к числовым типам данных MySQL