2010-09-06 4 views
0

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

  • ID в первичный ключ
  • atm_ID является VARCHAR
  • trasn_id является VARCHAR
  • Sysdate: Дата
  • остальное ИНТ

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

Ошибка:

SQL statement is not executed!com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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, £20, £50, £100, trans_Id) VALUES (7,'hello','hello','2','2','2','2','2','he' at line 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

Я бы посоветовал изменить имена столбцов таким образом, чтобы они содержали только буквенно-цифровые символы и символы подчеркивания. Хотя технически вы можете использовать любой символ в имени таблицы, это часто является причиной проблем и требует специального лечения. – Mchl

ответ

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

Спасибо, что это сработало. – user440798