| |||
problema autoincrement hola, tengo una valor en una variable que es mayor a los de una campo autoincrement, al ingresarlo en la primera fila se pasa a la ultima sin modificar ninguna otra fila, no se como hacer para poner ese valor en la primera fila y se autoincremente hasta la ultima, acepto sugerencias. |
| |||
Respuesta: problema autoincrement tenes razon, pero no puedo solo poner AI sin que lo columna sea PK, le saque las dos propiedades y estoy probando algo como esto:
Código MySQL:
Ver original Cita: siendo $ng el numero a insertar y $nmax la primer fila.Editado: Código de programacion no permitido en foros de BBDD. no funciona. Última edición por gnzsoloyo; 18/06/2014 a las 09:33 |
| ||||
Respuesta: problema autoincrement Partamos de la base que lo que estás planteando no tiene ningún sentido en BBDD, y que además quitar una PK (esa "propiedad" que mencionas, que no es una "propiedad") es algo que no se debe hacer. Una tabla sin PK es una bolsa de datos basura. Sería mejor que nos explicaras, más allá de tu intento, qué es exactamente lo que necesitas hacer, y por qué. Por lo que se entiende del código, estás modificando los valores de un campo, para hacerlos secuenciales, pero no se entiende bien la razón de eso. Es probable, incluso, que lo que quieres lograr se pueda hacer de otro modo, mucho más eficiente y sin tener que alterar la tabla.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema autoincrement explico el codigo bloqueado: while con la condicion $ng>$nmax la intencion es que se actualicen estas variables cuanse se cumpla:
Código SQL:
Ver original Cita: Editado: Código de programacion no permitido en foros de BBDD. Por favor, leer las normas del foro de Bases de Datos. Última edición por gnzsoloyo; 18/06/2014 a las 09:34 |
| |||
Respuesta: problema autoincrement como explicarlo, agregue un id PK y AI , el campo a modificar (name)quedo con sin Pk ni AI. ahora necesito que un valor $ng se inserte secuencialmente remplazando los valores existentes. |
| ||||
Lo que dices no aclara la pregunta que te hice: ¿Por qué necesitas hacer esa renumeración? Lo quiero entender para ver cuál sería el objeto y evaluar si realmente es necesario, o se puede plantear otra estrategia para cumplir el escenario sin tener que alterar tabla o datos. Mi pregunta apunta a saber si la renumeración es sólo por razones estéticas, porque se necesita leugo para visualizar ese dato en la pantalla, o realmente se requiere por la relación de ese dato con otras tablas. En lso dos primeros casos, no se necesita hacerlo, porque hay otros métodos. en el último caso, hay que evaluar la conveniencia de acuerdo a la estructura de datos de la base.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema autoincrement es necesario si por eso mi insistencia, otro camino no conozco. solo quiero que en una columna (que esta relacionada con otros archivos) inserte un valor y este aumente secuencialmente. disculpa mi poca capacidad paraexpresar el problema, obiamente soy novato en esto. |
| ||||
Respuesta: problema autoincrement El tema no pasa por lo novato, sino que para modificar datos de una tabla, o cambiar estructuras de la base de datos, tiene que haber reales necesidades, y realmente aún no respondes exactamente lo que pregunto. A ver si se entiende... Vamos a dar por supuesto que sabes que una PK es la clave única que identifica un registro dado en cuna tabla determinada, y también vamos a dar por sabido que una PK de una tabla es la forma en que dos tablas se relacionan, cuando la PK de una es FK en otra. Adicionalmente, vamos a suponer que sabes que en BBDD no se relacionan "archivos", sino tablas, y en ese sentido no existen tales archivos en una base MySQL, como los hay en Excel. Bien. Supongamos que tienes una tabla con 12.000 registros, pero la PK de esa tabla no es una columna numérica, ni contiene valores numéricos secuenciales. Para poder agregarle una columna numerada secuencialmente, sólo sería necesario agregarle una columna AI. Simple, lisa y llanamente Con eso MySQL, al erconocer que es un AI, lo numerera en el mismo orden en que aparecen en la tabla los registros, sin más. Ahora bien, si la tbla ya tiene una PK, y la misma no es FK en ninguna otra, se dropea la PK (sin quitar la columna), y se agrega la columna, como AI y como PK. Pero si la PK es FK en otra tabla, esto no se puede hacer. Sólo quedaría agregar una columna y numerarla secuencialmente... Este último caso requiere de dos pasos: 1) Agregar una columna: 2) Hacer un UPDATE masivo para numerarlo. Para eso primero creamos una variable en la sesión, y luego hacemos el UPDATE:
Código MySQL:
Cuidado: Son DOS sentencias separadas.Ver original 3) Agregarle la restricción de NOT NULL
Código MySQL:
Ver original Finalmente, si el tema es poder visualizar en un formulario o una vista, una tabla preexistente, numerada secuencialmente, todo esto es totalmente innecesario. bastaría con hacer una numeracion seucuencial que sólo aplique a mostrarlo en ese momento:
Código MySQL:
Ver original Esto no está completo, hay muchas consideraciones a realizar, pero la información que das es demasiaod escasa para dartye mejores soluciones.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: problema autoincrement dale gracias estoy tratando de entender la expresion y no lo logrado, estoy tratando.voy a tratar por otro camino, usando es php while p for |
| ||||
Respuesta: problema autoincrement Bueno... ![]() Eso lo tendrás que resolver en el Foro de PHP. Postea allá, eso si, trata de postear en ese caso todo el código del script, no sólo la parte del while, apra que se entienda bien la lógica que usas en eso, y te puedan ayudar.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
Etiquetas: |