2010-09-06 5 views
0

J'utilise MYSQL 5.1, j'essaye d'écrire une instruction d'insertion dans ma classe java. Cela semble très simple mais j'ai essayé et obtenu l'exception. Je suis sûr qu'il y a une erreur de syntaxe avec mon code. ci-dessous est l'extrait pourrait quelqu'un m'aider ici.Syntaxe de la commande d'insertion Mysql

  • ID est dans la clé primaire
  • atm_ID est varchar
  • trasn_id est varchar
  • SYSDATE est Date de
  • reste est int

S'il vous plaît, aidez-moi.

Erreur:

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`

code:

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

Je vous conseille de modifier vos noms de colonne de telle sorte qu'ils contiennent uniquement des caractères alphanumériques et des traits de soulignement. Tandis que techniquement vous pouvez utiliser n'importe quel caractère dans le nom de la table, c'est souvent la cause de problèmes et nécessite un traitement spécial. – Mchl

Répondre

1

Il semble que vous avez simplement besoin d'échapper aux noms de colonnes qui commencent par £ avec des accents graves:

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

Cas de test:

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

Merci cela a fonctionné. – user440798