gabriele renzi wrote:
2010/9/23 Marco M. [email protected]:
Se invece usi l’indice ma il valore lo generi tu in maniera casuale?
pare anche a me la soluzione pi� ovvia, molti db hanno gi� una
funzioncina che lo fa e farlo in ruby � banale.
Direi che funziona!
Ho fatto qualche prova, sulle prime mi rispondeva lo stesso ordine in
cui li inserivo es:
create table u ( id integer, n integer, primary key(id));
insert into u (id,n) values (1,1),(10,2),(100,3),(2,4),(5,5);
select * from u;
±----±-----+
| id | n |
±----±-----+
| 1 | 1 |
| 10 | 2 |
| 100 | 3 |
| 2 | 4 |
| 5 | 5 |
±----±-----+
Poi mi sono accorto di non aver inserito uno storage engines:
create table u ( id integer, n integer, primary key(id)) TYPE=innodb;
insert into u (id,n) values (1,1),(10,2),(100,3),(2,4),(5,5);
select * from u;
±----±-----+
| id | n |
±----±-----+
| 1 | 1 |
| 2 | 4 |
| 5 | 5 |
| 10 | 2 |
| 100 | 3 |
±----±-----+
quindi non devo far altro che generarmi un id pseudocasuale della
lunghezza del id es: rand(9999999999), che mi verifichi che non esista
gia` e poi inserirle.
Potrei, per perversione, dare un’occhio al motore piu adatto no so se la funzione di rollback dell'engine potrebbe essere un punto di debolezza del sistema o se e
possibile risalire alla sequenza di
inserimento tramite qualche funzione del motore stesso… ma forse sto
eccedendo…
Grazie tantissime
Andrea