Hoe kan je simpel Table inkorten maar 100 records bijvoorbeeld? dus dat de oudste weggaan en niet de nieuwste 
DELETE FROM TableName limit 100,9000 < werkt niet
DELETE FROM TableName limit 100,9000 < werkt niet
Siditamentis astuentis pactum.
oogjes open, snaveltjes dicht
oogjes open, snaveltjes dicht
1
2
| select count(*) from tabel |
1
2
3
| DELETE FROM tabel ORDER BY datumveld LIMIT aantal_records-100 |
1
2
3
4
5
| DELETE FROM tabel
WHERE 100 < (select count(*)
from tabel t1
where t1.datum > tabel.datum
) |
Als je altijd 100 wilt, zou ik het koppelen aan de insert van een nieuwe. dan ontstaat de 101ste en gooi je de oudste weg. Dan blijf je altijd op 100 staan.Op donderdag 28 februari 2002 23:27 schreef Martink het volgende:
Maar ik wil juist dat er altijd 100 inzitten dus niet dat hij te veel verwijdert
Ik heb het even geprobeert op een table met 10 recordsOp vrijdag 01 maart 2002 15:46 schreef Goodielover het volgende:
Heb je een datumveld?
zo ja dan hier de oplossing:
tel eerst aantal records:
code:
1 2 select count(*) from tabel
en dan verwijder:
code:
1 2 3 DELETE FROM tabel ORDER BY datumveld LIMIT aantal_records-100
Of
code:
1 2 3 4 5DELETE FROM tabel WHERE 100 < (select count(*) from tabel t1 where t1.datum > tabel.datum )
Deze laatste kan wel een traag zijn
1
2
| DELETE FROM TableName ORDER BY id LIMIT 10-5 Error: 1064 - You have an error in your SQL syntax near 'ORDER BY id LIMIT 10-5' at line 1 |
Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD
Op vrijdag 01 maart 2002 15:48 schreef Goodielover het volgende:
[..]
Als je altijd 100 wilt, zou ik het koppelen aan de insert van een nieuwe. dan ontstaat de 101ste en gooi je de oudste weg. Dan blijf je altijd op 100 staan.
Het leven kan soms simpel zijn