2017-06-15 5 views
-2

Je reçois l'erreur suivante lors de l'exécution de cette requête dans une base MySQL:mysql.connector.errors.ProgrammingError: 1103 (42000)

'create table DDB_CHANGE_via_mailbox_iocb_modifier_0x1_device_id_0x2_state_0x23_tran_up_error_0x0_flags_0x884e0000 (s_no int primary key not null, time varchar(25) not null, component varchar(50) not null, message varchar(255) not null, complete_id int not null)' 

Erreur:

Traceback (most recent call last): File "", line 1, in File "C:\Python34\lib\site-packages\mysql\connector\cursor.py", line 559, in execute self._handle_result(self._connection.cmd_query(stmt)) File "C:\Python34\lib\site-packages\mysql\connector\connection.py", line 494, in cmd_query result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query)) File "C:\Python34\lib\site-packages\mysql\connector\connection.py", line 396, in _handle_result raise errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1103 (42000): Incorrect table name 'DDB_CHANGE_via_mailbox_iocb_modifier_0x1_device_id_0x2_state_0x23_tran_up_error_0x0_flags_0x884e0000

'

Je suis en utilisant mysql de l'hôte local xampp et en exécutant des requêtes en python en utilisant le connecteur mysql. Suis-je entrer un caractère dans le nom de la table qui n'est pas autorisé? J'ai lu quelque part que l'inclusion du nom de la table dans les guillemets résout ce problème. Mais j'ai la même erreur même après avoir fait ça.

Edit: D'accord, apparemment, vous ne pouvez pas avoir un nom de table de plus de 64 caractères qui semble être le problème dans mon cas. Y at-il une solution de contournement pour cela?

Répondre

0

Essayez ceci: -

create table 'DDB_CHANGE_via_mailbox_iocb_modifier_0x1_device_id_0x2_state_0x23_tran_up_error_0x0_flags_0x884e0000' ( 'S_NO' clé primaire int not null, 'temps' varchar (25) non nul, 'composant' varchar (50) non nul, 'message' varchar (255) non nul, 'complete_id' int not null)

+0

'dbCursoe.execute (" create table 'DDB_CHANGE_via_mailbox_iocb_modifier_0x1_device_id_0x2_state_0x23_tran_up_error_0x0_flags_0x884e0000' ('S_NO' clé primaire int not null, 'temps' varchar (25) non null, 'composant' varcha r (50) non nulle, 'message' varchar (255) non nulle, 'complete_id' int not null) ")' L'exécution de cette donne l'erreur: _mysql.connector.errors.ProgrammingError: 1064 (42000): Vous avez une erreur dans votre syntaxe SQL_ – rishabh

+0

Encore une fois, l'utilisation de backtics (') au lieu de guillemets simples pour entrer le nom de la table me donne la même erreur que ma question (nom de table incorrect). Peut-être que j'utilise du caractère dans mon nom de table qui n'est pas autorisé? – rishabh