Hogyan állíthatom be a felvitt sorok maximumát MySQL-ben egy adott táblában?
Arra lennék kíváncsi, hogy mondjuk adott 50 sor amit fel lehet vinni egy táblában és ha eléri az 51-et akkor az már a tábla első sorát UPDATE-elje.
Eleve hogyan érdemes egy ilyen táblát deklarálni MySQL-ben?
MySQL-ben ezt sehogy.
A használt programnyelven ellenőrzöd, hogy elérte-e ezt a limitet. Jelölni kell azt, hogy melyik lesz a következő update-elendő rekord, különben mindig csak az elsőt fogod felülírni. Szóval erre vezess be egy flaget.
Nem igazán értem teljeségében mi a cél, hogy "táblába minek szerepeljenek egyforma sorok". Nem kell felvinni :) és nincs redundancia (vagy a kulcsokat úgy kialakitani hogy ne történhesen meg)...
De ha csak 50 sort akarsz megtartanni gondolom a legfrissebeket :P akkor csak azokat kéred le..
Talán ezt átalakithatod arra amire szeretnéd, egy teszt táblán tesztelgesd.. a lényeg hogy 50 sor feletti és későbbi dátumok szerint rendezve töröld...
DELETE FROM Customet
WHERE ctid IN (
SELECT CustomerID
FROM logtable
ORDER BY timestamp
LIMIT 10
)
Mondasz valamit. Még én se tudom hogyan is csináljam. Néztem ezt a triggerelést de rájöttem felesleges.
Akkor a konkrét példa nagyvonalakban:
Adott egy tábla mondjuk ezekkel az oszlopokkal (id,kep_url,datestamp)
Van egy űrlap, ahol képet lehet feltölteni (mindenkinek) egyesével. Ezek egy darab könyvtárba töltődnek, ahol max csak 50db kép lehet. Az 51. kép feltöltésekor felülírja a legrégebbi képet. A kép nevei nem 1,2,3,... hanem mondjuk datestamp-1,datestamp-2,....
Nos ugyan ezt kell megvalósítani az sql táblában is a neveknél. Az 51 lekérést a legrégebbivel írja felül. Nem szeretnék "halott" url-eket is tárolni a táblában, de túl sok lekérési műveletet se szeretnék.
Lehet ezt marhára megbonyolítottam.
Hát ha ennyire korlátozni akarod, és azt mondod hogy egy már adott könyvtárban csak 50 kép lehet...
akkor létrehoznék egy olyan oszlopot a táblában ami a fájl_neve.kiterjesztés tartalmazza... és gondolom a php script végzi a felülirást, a fájl müveleteket stb. (tehát weboldalról van szó)..
akkor annak a FÁJLNAK A NEVÉT amit felül akar írni, betenném egy változóbba (RÉGI_FÁJLNEVE), és amikor felülírta akkor ki keresném a táblában a RÉGI_FÁJL_NEVET és UPDATE kepek SET filename="uj_fjal_nev" WHERE filename="regi_fajl_nev"
felfrissitenném.... nyilván ilyenkor a filenév lenne a kulcs, és nem lenne autoincrement primary key...
csak az a fontos hogy a fájlnév nagyon egyedi legyen pl.: timestamp_randomszam.jpg..
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!