0 votos
El problema es el siguiente: tengo una tabla en la base de datos con un campo posición el cual recibe valores enteros, después cargo una lista con los datos de mi tabla, ahora necesito que al momento de insertar un nuevo registro en la posicion 1 y si la posicion 1 ya existe en la base de datos la recorra al numero 2 y si existe el 2 lo recorra al 3 y asi sucesivamente. Todo esto con java.
por en MySQL

1 Respuesta

0 votos

No se si te he entendido bien..

Quieres que cuando se introduzca un campo nuevo en la tabla, este nuevo campo se guarde en la posición siguiente a la ultima?.

En caso de que sea lo que yo me he imaginado, lo mejor es poner el campo 'posicion' como autoincremet, de esa manera sin que tu le indiques manualmente la posición, el solo se auto incrementará.

Por otro lado, si no la quieres poner en autoincrement, se me ha ocurrido esto: 

ResultSet rs1 = stmt.executeQuery("select *  from pru1");
int posicionesTotales = 0;
while (rs1.next()) {
	posicionesTotales++;
}
String sentenciaSQL = "Insert into pru1 values (" + posicionesTotales + ")";
stmt.executeUpdate(sentenciaSQL);

esto lo que hace es, básicamente irte añadiendo posiciones seguidas cada vez que lo ejecutas.

cuando lo ejecutes la primera vez, el valor de la posicion del campo sera 0, cuando lo ejecutes otra vez, el valor de la posicion del campo sera 1,   cuando lo ejecutes otra vez, el valor de la posicion del campo sera 2, etc..

por
editado por
Si es algo parecedio a lo que mencionas, sin embargo lo que quiero es que yo pueda insertar en la posición deseada, es decir si hay 5 posiciones en su respectivo orden  1,2,3,4,5 yo pueda insertar en la posicion 3 y y si existe esa posición recorrerla al 4 y la 5 al 6 así sucesivamente.
y que ocurre si metes una posicion superior a 5? por ejemplo: quieres meter un valor cuya posicion es 9. ese campo se quedara en la posicion 9 se quedara en la 6 porque es la siguiente a la ultima que habia?.

y cuando dices.. "yo pueda insertar en la posicion 3 y y si existe esa posición recorrerla al 4 y la 5 al 6 así sucesivamente." te refieres a que el valor que estaba en la tercera posicion ahora estara en la cuarta, el valor que estaba en la cuarta ahora estara en la quinta, y el nuevo valor (3) estara en la tercera? o ir moviendo la nueva posicion hasta que encuentre hueco?