2017-10-10 15 views
1

J'ai donc une base de données phpmyadmin sql. J'ai également une base de données mysql hébergée localement, et mon code a besoin de parler à tous les deux. Pour les choses sur mon local, quand je lance un appel d'insertion sur une table, je peux appeler ma connexion a eu lieu:pymsql insert insert_id renvoie 0 en utilisant phpmyadmin

self.connection.insert_id()

et obtenir l'identifiant du dernier élément inséré.

Cependant, quand je le fais à ma base de données phpMyAdmin, le insert_id retour TOUJOURS 0. Le code est juste:

cmd = 'INSERT INTO meal ({0}) VALUES ({1})'.format(','.join(keys), ','.join(values)) 

et les œuvres insert, mais INSERT_ID renvoie 0, même si via phpmyadmin je peux voir que la clé 'id' pour cette table est: INT (11) null n'est pas vérifié, l'incrémentation automatique est activée, et son got l'icône de clé primaire clé d'or

Donc je ne suis pas vraiment sûr de ce qui se passe - est c'est un bug, ou est-ce que je fais quelque chose d'incroyablement stupide?

Merci!

EDIT: Comme une note de côté, les éléments que je insert n'ont des clés d'identification qui sont auto-incrémenté appropirately, tout simplement pas se retourné :(

Répondre

0

Heres quelque chose d'étrange - je remarque si je fais une des:

my_id= self.connection.cursor().rownumber 

ou

my_id= self.connection.insert_id() 

il me donne 0 à chaque fois, si je fais:

 my_id= self.connection.cursor().rownumber 
     if my_id== 0: 
      my_id= self.connection.insert_id() 

Je reçois le bon résultat ... fou?