Visa ett inlägg
Oläst 2005-07-18, 20:17 #1
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
Har en antal tabeller (ganska många egentligen) som byggs på med en ny rad med jämna mellanrum. För att spara diskutrymme och snabba upp access vill jag då och då rensa bort rader ur tabellerna, och då ett antal av de äldsta (första) raderna.

Det blir väl att använda en vanlig DELETE
Kod:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT row_count]
Men nu är det så att tabellerna inte har något löpande id eller liknande, eller datum, så jag kan inte använda WHERE för att hitta de äldsta posterna som jag ska ta bort.

Vill höra om det fungerar att använda LIMIT utan WHERE för att åstadkomma detta?

Alltså typ

Kod:
DELETE FROM tbl_name
    LIMIT 200
för att ta bort de första 200 raderna?? Är lite osäker, eftersom referensmanualen säger

Citat:
If you issue a DELETE statement with no WHERE clause, all rows are deleted.
och det vill jag ju inte!

Eller finns något smartare sätt att göra ett sånt här underhåll på?
aikon är inte uppkopplad   Svara med citatSvara med citat