Salve a tutti, è possibile limitare le righe che può contenere una tabella?? Es. in una tabella voglio solo far inserire 10 righe e se si prova ad inserirne altre viene cancellata la più vecchia e si aggiunge la nuova....Grazie
Salve a tutti, è possibile limitare le righe che può contenere una tabella?? Es. in una tabella voglio solo far inserire 10 righe e se si prova ad inserirne altre viene cancellata la più vecchia e si aggiunge la nuova....Grazie
Non mi risulta che sia possibile fissare un limite massimo di record inseribili in una tabella.
Temo non possa risolvere nemmeno con un trigger in quanto dovresti comunque associare a un evento sulla tabella la cancellazione di record dalla stessa, cosa che mysql non consente.
Certo che la tua è una richiesta curiosa.
Non puoi banalmente fare una query che recuperi gli ultimi record inseriti?
Una possibilità, almeno nella versione 5.1 nella quale sono stati introdotti gli eventi, potrebbe essere quella di eseguire ogni tot di tempo una query di cancellazione che rimuova tutti i record tranne gli ultimi 10.![]()
oppure affidare la insert a una sp che dopo aver fatto la insert vera e propria provveda alla cancellazione delle eccedenze![]()
Grazie 1000...ho deciso di creare uno script php che ogni volta che si cerca di inserire un record controlla se i record presenti nella tabella sono 10, in questo caso aggiunge l'undicesimo ed elimina il più vecchio, cioè quello con l'id auto-increment più basso....Ma come faccio a verificare quale record ha l'id più basso??? Grzie 1000
Puoi inserire tutti i record e, una volta concluso l'inserimento, cancellarli tutti tranne gli ultimi 10 in questo modo:
codice:delete from tabella where id < (select * from (select id from tabella order by id desc limit 9,1) as tab)
grazie 1000...risolto![]()
![]()
![]()
![]()
----------------------------------------------------
nello spirito del forum, spiega come hai fatto, così aiuterai qualche altro forumista che dovesse avere lo stesso problema.
----------------------------------------------------
![]()
Ho utilizzato il codice di nicola75ss
codice:delete from tabella where id < (select * from (select id from tabella order by id desc limit 9,1) as tab)![]()
![]()