[Tech] autoincrement su mysql
Leonardo Boselli
leo@dicea.unifi.it
Lun 4 Ago 2003 18:45:24 CEST
On Mon, 4 Aug 2003, Marco Ermini wrote:
> Leonardo Boselli disse:
> > Problema: se metto un campo indice come autoincrementante se non
> > gli passo un valore esplicito m i mette il numero successivo al pių altro
> > inserito.
> > La regola dovrebbe essere che se gli do un numero (che so a priori
> > essere univoco) gli mette quello come indice (e la cosa funziona) ma se
> > non glielo do mi dovrebbe prendere il successivo a quello inserito per
> > ultimo tra quelli "bassi"...
> [...]
> No... questo non lo fa nessun database. Intendo: il recupero degli
> autoincrement (o counter, parlando come farebbe un DBA Oracle) non piu'
> utilizzati non lo fa alcun database, e che io sappia, di proposito.
> che vuoi fare tu in automatico. In MySql la vedo piu' dura, anche perche'
> se un campo e' dichiarato autoincrement non puoi mettergli tu un valore
> arbitrario, e non esistono per adesso ne' trigger ne' stored procedures.
lo, il valore alrbitrario lo accetta ... ma se questo č
"alto" l'autoincremet riprende dal pių altro valore presente nel database,
e questo non lo voglio !
> Come hai intuito, dovresti usare due counter; siccome non ci sono i
> counter in MySql, puoi unicamente creare due tabelle con due campi
> autoincrement, e pescare da queste due tabelle per creare l'indice per la
> tabella che devi riempire, e schiaffarci l'indice a mano.
ho risolto con usare un campo autoincrfemnt come indice primario, e poi un
campo che contiene il valore che gli do, e subito dopo in
update indicemio=indicesuo where indicemio=empty()
speravo potessi avere un autoincrement come esiste per adduser --uid=2000
dove mi mette il primo adduser disponibile a partire da 2000 !
Maggiori informazioni sulla lista
flug-tech