problemas con sql y python

Iniciado por v3ngad0rx, Marzo 05, 2019, 12:27:59 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

hola amigos de undercode y para los que sepan de python3 y de mysql

tengo este problema

tengo este metodo

Código: python
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

Código: mysql

select * from num_calculo;

y me arroja todo la lista

Código: MySQL
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
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
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
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!
Nivel 77 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

gracias amigo por tu obsrvacion, pero vieras que siempre sigue con el mismo problema ya intente varios metodos

No tienes permitido ver los links. Registrarse o Entrar a mi 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




Con la fuerza del mar, con la paz del rio