hola amigos de undercode y para los que sepan de python3 y de mysql
tengo este problema
tengo este metodo
def insertar_num_calculo(self,identificador):
conx = Coneccion_bd()
cone = conx.conectado()
cursor = cone.cursor()
cursor.execute("INSERT INTO num_calculo VALUES (null, null, null, null, null, '"+identificador+"' )")
self.cierre_coneccion(cone)
print("ingreso a la tabla num_calculo")
este metodo es parte de una clase x
bueno como ya saben agregaria datos en la tabla num_calculo
al momento de ejecutarlo todo bien no hay problema y cuando voy a hacer la consulta en mysql
select * from num_calculo;
y me arroja todo la lista
Código: MySQL
mysql> select * from num_calculo;
+------------+-----------+-----------+-----------------+-------+------------+
| id_calculo | fecha_uno | fecha_dos | cantidad_consul | meses | id_cliente |
+------------+-----------+-----------+-----------------+-------+------------+
| 1 | NULL | NULL | NULL | NULL | 1 |
| 2 | NULL | NULL | NULL | NULL | 2 |
| 3 | NULL | NULL | NULL | NULL | 3 |
| 4 | NULL | NULL | NULL | NULL | 4 |
| 5 | NULL | NULL | NULL | NULL | 5 |
| 6 | NULL | NULL | NULL | NULL | 6 |
| 7 | NULL | NULL | NULL | NULL | 7 |
| 8 | NULL | NULL | NULL | NULL | 8 |
| 9 | NULL | NULL | NULL | NULL | 9 |
| 10 | NULL | NULL | NULL | NULL | 10 |
| 11 | NULL | NULL | NULL | NULL | 11 |
| 12 | NULL | NULL | NULL | NULL | 12 |
| 13 | NULL | NULL | NULL | NULL | 13 |
| 14 | NULL | NULL | NULL | NULL | 14 |
| 15 | NULL | NULL | NULL | NULL | 15 |
| 16 | NULL | NULL | NULL | NULL | 16 |
| 17 | NULL | NULL | NULL | NULL | 17 |
| 18 | NULL | NULL | NULL | NULL | 18 |
| 25 | NULL | NULL | NULL | NULL | 19 |
| 27 | NULL | NULL | NULL | NULL | 23 |
+------------+-----------+-----------+-----------------+-------+------------+
comi mira en mi consulta sql me muesta todo bien, pero si se dan cuenta en al id_consulta, se salta
y al momento de hacer otra consulta
Código: MySQL
mysql> select * from num_calculo where id_cliente = 20;
Empty set (0.00 sec)
este es la descripcion de la tabla
Código: MySQL
mysql> describe num_calculo;
+-----------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------+------+-----+---------+----------------+
| id_calculo | int(10) | NO | PRI | NULL | auto_increment |
| fecha_uno | date | YES | | NULL | |
| fecha_dos | date | YES | | NULL | |
| cantidad_consul | int(10) | YES | | NULL | |
| meses | int(10) | YES | | NULL | |
| id_cliente | int(10) | YES | MUL | NULL | |
+-----------------+---------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
en la consulta de la table como me si me deja agragar pero por medio de la consola
Código: MySQL
mysql> insert into num_calculo values (null, null, null, null, null, 19);
y al hacer eso desde la consola todo excelente
¿proque desde el metodo no aparecen?
que tengo que hacer
Hola amigo!
Creo haber entendido tu consulta... ¿El problema es que el tu id primario "se saltó" alguno números?
Si es así te comento algo que puede dar un poco de claridad a tu consulta:
Al ser un "auto incrementable" significa, como su nombre lo dice, que aumentará en 1 unidad por cada petición de ingreso, pero sucede que si dentro de tus intentos de realizar el INSERT ocurrió algún problema y se generó la instancia de la consulta, ese número igual aumentará y se incrementará n veces hasta que se inserte bien el registro y logres ver en que número quedó la referencia de tu clave primaria.
Creo que por ahí puede ir tu caso, no es extraño ver lo que reportas.
Espero haber podido clarificar un poco tu problema.
Saludos!
gracias amigo por tu obsrvacion, pero vieras que siempre sigue con el mismo problema ya intente varios metodos
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Al ser un "auto incrementable" significa, como su nombre lo dice, que aumentará en 1 unidad por cada petición de ingreso, pero sucede que si dentro de tus intentos de realizar el INSERT ocurrió algún problema y se generó la instancia de la consulta, ese número igual aumentará y se incrementará n veces hasta que se inserte bien el registro y logres ver en que número quedó la referencia de tu clave primaria.
Como bien dice DeBobiPro es que el numero aumenta por cada peticion de ingreso, si por algun motivo falla el intento de insert, ese numero ya fue incrementado y seguira incrementando por cada vez que intentes ingresar ese dato.
Osea que el dato que estas buscando (del 20 al 24)
no existen. Ya que no fueron insertados.
Si en alguna parte del codigo estabas esperando que ese numero fuera correlativo, podrias hacerlo de la misma manera pero agregandole un if(numeroRow != null) y la logica de tu programa seguiria igual