Kezdőoldal » Számítástechnika » Programozás » Hogyan állíthatom be a felvitt...

Vid82 kérdése:

Hogyan állíthatom be a felvitt sorok maximumát MySQL-ben egy adott táblában?

Figyelt kérdés

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?



2014. okt. 24. 13:01
1 2
 1/13 anonim ***** válasza:

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.

2014. okt. 24. 13:25
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:
Aha értem. Én is valami ilyesmire gondoltam, csak azt hittem ehhez van valami speciális beállítás.
2014. okt. 24. 13:28
 3/13 anonim ***** válasza:
Szerintem töröld az első rekordot és vegyél fel helyette egy újat. Értelmesebb megoldás.
2014. okt. 24. 13:30
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:
Nem valami szokványos dolog csupán 50 rekordot megtartani. Miért akarod korlátozni a dolgot?
2014. okt. 24. 13:31
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:
2014. okt. 24. 14:20
Hasznos számodra ez a válasz?
 6/13 A kérdező kommentje:
Most 50 rekord vagy 300 az most lényegtelen. Igazából azért akarom korlátozni mert mysql táblába fogom tárolni a képek url-jét és a felvitt képek mennyisége korlátos lesz ergo ha ha pl már szerepel az adott könyvtárban 50 db kép akkor az 51. kép már az első kép nevét fogja felülírni és a táblába minek szerepeljenek egyforma sorok. Pazarlásnak gondolom, és nem akarok óriási táblaméretet generálni.
2014. okt. 24. 15:19
 7/13 A kérdező kommentje:
Valószínű ez a Triggeres megoldás lesz a megfelelő, de ezt még át kell néznem. De köszönöm.
2014. okt. 24. 15:29
 8/13 Birtalan Balázs válasza:

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

)

2014. okt. 24. 23:35
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:

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.

2014. okt. 25. 00:21
 10/13 Birtalan Balázs válasza:

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..

2014. okt. 25. 00:39
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!