in SQLITE l' auto increment e' identico a quello di MySQL pero' si comporta in modo strano che in MySQL non so se e' proprio cosi' ... in pratica la tabella trasparente master_sql penso tenga memoria dell' ultimo id inserito e quindi del valore successivo da inserire in auto_increment.[supersaibal]Originariamente inviato da marketto
ciao, una domanda:
l'AUTO_INCREMENT su sqlite funziona come su mySQL?
ho visto che quando muovi il nodo, nel caso in cui $blocks è <= 1, cancelli il nodo stesso per poi reinserirlo con i valori corretti di sx e dx, mantenendo lo stesso id...ho detto giusto? :master:
[/supersaibal]
Questo ovviamente significa che se faccio un INSERT in questo modo:
INSERT INTO table VALUES (12, 'pippo')
c'e' un errore di sqlite che dice AUTO_INCREMENT must be UNIQUE, quindi per farlo funzionare dovrei usare questa
INSERT INTO table VALUES (NULL, 'pippo')
ed e' tutto ok ... ma per qualche motivo a me ignoto, se la query la faccio in questo modo
INSERT INTO table (id, nome) VALUES (12, 'pippo')
dove 12 so per certo che non e' un id gia' presente, visto che l' ho eliminato immediatamente prima, sqlite mi permette di reinserire o popolare, stile update, quella linea gia' usata ma senza alcun valore, proprio perche' e' stata cancellata.
Se in MySQL questo non fosse possibile penso che basti aggiungere un UPDATE qualora sia necessario utilizzare un ID che era gia' stato usato ....
ovvero:
INSERT INTO table VALUES (NULL, 'pippo')
UPDATE table SET id = {$oldid} WHERE id = ( SELECT MAD(id) FROM table )
essendo come prima certi che nessun' altra riga avra' valore 12, mysql non dovra' rompere le scatole e permetterci di fare questo tipo di update![]()