їHay alguna forma de hacer esto en MySQL?
#1

Hola, resulta que estoy creando un sistema de vehнculos en MySQL y lo estoy haciendo dinбmico, pero para cargar los vehнculos los cargo mediante una columna llamada id. Lo que quiero es que esa columna se adapte automбticamente, es decir: si creo 1 vehнculo se pondrб con la id 1, si creo otro mas seguido a ese se creara con la id 2, y si elimino uno de los dos y luego creo otro mas, se pondrб con la id 3, lo que quiero es que se ponga con la id 2 xD, no se si me entienden.

Explicaciуn por si no entienden xD:

1- Creo 1 vehiculo
2- Creo otro vehiculo
3- Elimino un vehiculo
4- Creo Otro vehiculo

El vehнculo creado en el paso 4 se crea con la id 3 ves de la 1.

Desde ya muchas gracias!
Reply
#2

Si.
En la base de datos ponele AUTO_INCREMENT (AI) a esa columna.
Reply
#3

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
para evitar ese problema se usa la i del bucle como indice en el enum y la ID de la casa se guarda en una variable.
pawn Код:
for(new i=0; i < num_rows; i++) {
    cache_get_field_content(i,"Owner",HouseInfo[i][House_Owner],HANDLE);
    cache_get_field_content(i,"ID",HouseInfo[i][House_ID],HANDLE);
}
https://sampforum.blast.hk/showthread.php?tid=395819
Reply
#4

Код:
UPDATE tabla SET ID=ID-1 WHERE ID > id
DELETE FROM tabla WHERE ID=id
La primera consulta lo que hace es retroceder un nъmero atras a todas las IDs que sean mayor a id (ID que ingresaste para borrar). La segunda elimina de la tabla la ID que seleccionaste.
Yo te dн las consultas para que puedas elaborar el cуdigo, si con eso no te es suficiente, decilo en el post y te doy un ejemplo si no sabes como manejarte con MySQL.
EDIT:Ah, ahora entiendo el autoincrement no te deja poner la ID del que eliminaste.
Entonces tenйs que setear el autoincrement.
Код:
ALTER TABLE tabla AUTO_INCREMENT=Apartir de que id queres que se cree
Reply
#5

Gracias por responder.

Quote:
Originally Posted by CaptainMactavish
Посмотреть сообщение
Код:
UPDATE tabla SET ID=ID-1 WHERE ID > id
DELETE FROM tabla WHERE ID=id
La primera consulta lo que hace es retroceder un nъmero atras a todas las IDs que sean mayor a id (ID que ingresaste para borrar). La segunda elimina de la tabla la ID que seleccionaste.
Yo te dн las consultas para que puedas elaborar el cуdigo, si con eso no te es suficiente, decilo en el post y te doy un ejemplo si no sabes como manejarte con MySQL.
EDIT:Ah, ahora entiendo el autoincrement no te deja poner la ID del que eliminaste.
Entonces tenйs que setear el autoincrement.
Код:
ALTER TABLE tabla AUTO_INCREMENT=Apartir de que id queres que se cree
Lo que me pasa es que si ya tengo 100 vehнculos creados (un ej), y elimino el id 50, luego le altero la tabla como dijiste yno cambian todas las id del 50 al 100, lo ъnico que hace es que si creo un vehнculo nuevo se cree con la id 101.

No se si me entiendes, pero no me ha resultado :S

PD: La columna ID tiene un AUTO_INCREMENT
Reply
#6

Entonces:
Код:
SELECT LAST_INSERT_ID()
//Esto te va a devolver la ъltima ID
ALTER TABLE tabla AUTO_INCREMENT=Lo que te devuelva la consulta de arriba menos 1, ya que habian 100 autos y ahora hay 99
UPDATE tabla SET ID=ID-1 WHERE ID > 50
//Retrocede las ID de todos que sean mayor a 50, el 51 va a pasar a ser 50, 52 a 51, y asi sucesivamente
Reply
#7

Quote:
Originally Posted by CaptainMactavish
Посмотреть сообщение
Entonces:
Код:
SELECT LAST_INSERT_ID()
//Esto te va a devolver la ъltima ID
ALTER TABLE tabla AUTO_INCREMENT=Lo que te devuelva la consulta de arriba menos 1, ya que habian 100 autos y ahora hay 99
UPDATE tabla SET ID=ID-1 WHERE ID > 50
//Retrocede las ID de todos que sean mayor a 50, el 51 va a pasar a ser 50, 52 a 51, y asi sucesivamente
Muchнsimas gracias Captain.

TEMA RESUELTO
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)