Синтаксис команды вставки Mysql

0

Я использую MYSQL 5.1, я пытаюсь написать инструкцию insert в моем классе java. Это звучит очень просто, но я старался и получал исключение. Я уверен, что есть синтаксическая ошибка с моим кодом. Ниже приведен фрагмент, который может помочь мне здесь.

  • Идентификатор находится в первичном ключе
  • atm_ID является varchar
  • trasn_id является varchar
  • sysDate - дата
  • rest is int

Пожалуйста, помогите мне.

Ошибка:

Оператор SQL не выполняется! com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около 10, 20, 50, 100, trans_Id. ЗНАЧЕНИЯ (7, "привет", "привет", "2", "2" ',' 2 ',' 2 ',' 2 ',' he 'в строке 1`

код:

String query = "INSERT INTO atm_data (ID,atm_Id, sysDate, availBalance, £10, £20, £50, £100, trans_Id) VALUES (7,'hello','2010-09-15 01:20:06','2','2','2','2','2','hello')";
  • 2
    Я бы посоветовал изменить имена столбцов таким образом, чтобы они содержали только буквенно-цифровые символы и подчеркивания. Хотя технически вы можете использовать любой символ в имени таблицы, это часто вызывает проблемы и требует особого подхода.
Теги:
database

1 ответ

1
Лучший ответ

Похоже, вам просто нужно избегать имен столбцов, начинающихся с £ с обратными окнами:

INSERT INTO atm_data (ID, ... `£10`, `£20`, `£50`, `£100` ...

Тестовый пример:

CREATE TABLE tb (`£10` int);
Query OK, 0 rows affected (0.05 sec)

INSERT INTO tb (£10) VALUES (10);
ERROR 1064 (42000): You have an error in your SQL syntax; 
  check the manual that corresponds to your MySQL server version for the right 
  syntax to use near '?10) VALUES (10)' at line 1

INSERT INTO tb (`£10`) VALUES (10);
Query OK, 1 row affected (0.00 sec)
  • 0
    Спасибо, это сработало.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню