Salve a tutti volevo sapere se era possibile assegnare ad una tabella del mio database un numero preciso di record, e una volta raggiunto il numero iniziare a sovrascrivere dal primo record.
Grazie
Salve a tutti volevo sapere se era possibile assegnare ad una tabella del mio database un numero preciso di record, e una volta raggiunto il numero iniziare a sovrascrivere dal primo record.
Grazie
CREDO ci sia una qualche opzione più facile ma io penso che potresti fare una condizione che dopo un tot di record cominci a modificare dal primo..es:
nella tabella hai gli id (auto-increment) da 1 a 30 (mettiamo che 30 sia il num tot). Puoi fare una condizione che se quell'id è minore di 30 , inserisce ancora..appena arriva a 30 passa all'UPDATE del primo...e cosi' via...in qualche modo dovresti far capire allo script che se hai modificato il primo campo, deve passare al secondo ...questo magari lo puoi fare mettendo un campo GIRO alla tabella, dove indichi quante volte hai modificato quel campo...cosi' per esempio avrai una cosa simile
ID NOME GIRO
1 xxxxxx 2
2 xxxxxx 2
3 xxxxxx 1
4 xxxxxx 1
5 xxxxxx 1
..
..
30 xxxxxx 1
e sai che devi modificare il TERZO campo....ovviamente in realtà è un codice molto piccolo...pero' forse c'e' una soluzione più sempliceio ho dato solo un idea.
Farei come ha detto darkhero con una piccolissima differenza:
usa sempre REPLACE, così funziona a prescindere che il record esista già oppure no
STK/Unit: Unit Test framework per MariaDB
http://stk.wikidot.com/stk-unit
Ah si vero, per ora sto studiando anche altri linguaggi e ho confusione xD col REPLACE eviti qualche condizione![]()
Scusa ora ho letto meglio
La cosa migliore sarebbe metterci 30 record fittizi, con un id da 1 a 30, ma inserirli al contrario (dal 30 all'1). Questa tabella dovrebbe contenere un TIMESTAMP che si aggiorna ad ogni modifica (ON UPDATE CURRENT TIMESTAMP).
Non inserisci mai i record ma li modifichi sempre con un'istruzione del genere:
UPDATE ... ORDER BY colonna_timestamp LIMIT 1
STK/Unit: Unit Test framework per MariaDB
http://stk.wikidot.com/stk-unit
Secondo me conviene usare un modulo come GIRO anzichè il timestamp, è più elementare
Non so cosa sia giro, il timestamp è gestito internamente da MySQL e quindi non può esserci una soluzione "più elementare"![]()
STK/Unit: Unit Test framework per MariaDB
http://stk.wikidot.com/stk-unit
Io non ricordo il funzionamento , ma quando vai ad inserire un campo, come fa a sapere che campo deve modificare? cioe' , il timestamp mette una data , se deve fare un controllo su una data è più difficile di un controllo su un campo
Il timestamp è il numero di secondi trascorsi dalla Unix Epoch, cioè l'inizio del 1970. In MySQL può avere una precisione fino al microsecondo. Se lo crei con una precisione di 6 e con l'opzione ON UPDATE CURRENT TIMESTAMP, ogni volta che aggiorni una riga, si aggiorna quel valore con una precisione fino al microsecondo. E' impossibile averne due uguali, in un ambiente normale.
Per aggiornare l'ultima riga, l'ho già scritto come si fa:
UPDATE ... ORDER BY col_timestamp LIMIT 1;
STK/Unit: Unit Test framework per MariaDB
http://stk.wikidot.com/stk-unit