Fórumok
A példa kedvéért, van most egy tábla, amiben a következő oszlopok vannak: Sorszám, név, e-mail, password. Ehhez szeretném hozzáadni a "rangsor" nevű oszlopot, amibe a sorszám+15 értéknek kellene belekerülnie. Természetesen a már meglévő sorokat vegye figyelembe a kitöltés és a jövőbeni keletkező sorokat is töltse ki így, hogy figyelembe veszi a "rangsor" nevű oszlopot.
Az INSERT INTO amivel hozzáadhatom az oszlopot?
UPDATE amivel módosíthatom, kitölthetem?
Egy példa sornak örülnék.
Hozzászólások
Konkrét képlettel kiszámítható értéket nem kell tárolni, elég on-the-fly kiszámolni, hogy pl.:
Nagyon szépen köszönöm.
Nem lassítja a szervert, ha sok on the fly kell számolni egyidőben? Nem jobb lenne egyből beolvasni a táblában tárolt fix értéket?
"https://hunvagyok.hu "
A nézet az nézet, amit csak akkor számol végig, ha abból select-tel olvasgatsz. Persze ha select * from valami_view a kódod, és utána abból már nem az sql-ben szűrsz/válogatsz, akkor minden sorra végre fogja hajtani az adott műveletet- ami sokcsilliárd sor esetén idő - de ekkor sem ez fogja elvinni az idő jelentős részét.
kb 150.000 sort kellene végignézzen, ugyanakkor a feltétel minden esetben csak egy bizonyos sorra vonatkozik majd, ahonnan csak azt az egy oszlop elemet kellene kiolvassa.
"https://hunvagyok.hu "
magyarul lófing az adatmennyiség. Két dolgot tehetsz, az egyik az, hogy "select Sorszám, név, e-mail, password, sorszam+15 as rangsor from tábla where amit_szeretnél_feltétel" módon csinálod meg/alakítod át a selecteket, vagy csinálsz rá egy nézetet, és a nézetet használod a select, a táblát meg az insert/update során.
Alapvetés, hogy fölösleges adatot nem tárolunk, márpedig az a, b, c, d, e=a+15 oszlopokból az "e" oszlop fölösleges, azt akár a select során, akár a select eredményének a feldolgozása során ki lehet számolni, vagy ha úgy kényelmesebb, akkor egy nézettel le lehet fedni.
Köszönöm, ezen a gondolatmeneten indulok el.
"https://hunvagyok.hu "
"Az INSERT INTO amivel hozzáadhatom az oszlopot?" - Mármint alter table...
Igen.
"https://hunvagyok.hu "
Hello !
TÁROLT ELJÁRÁS témakörre keress rá ( stored procedure )
CSZ
Köszönöm, máris keresem.
"https://hunvagyok.hu "
Keresd meg, mert amúgy hasznos lehet megtanulni, de ennél a kérdésnél nem leszel vele kisegítve.
Mihez is kell neki? a +15-höz?
Gondolkodj nagyban, csinálhat olyan SP-t, ami nemcsak 15-öt tud hozzáadni, hanem bármennyit. :)
Inkább ne.
Nem teljesen értem, mi a megoldandó probléma. A rangsor mindig fixen a sorszám+15 marad, vagy ez csak az induló érték, és változhat?
Amire szükségem van, hogy a sorszámból lehessen generálni egy olyan egyedi azonosítót, aminek a hossza 128 bit.
"https://hunvagyok.hu "
De a sorszámod egy egyedi, x bites azonosító, nem? Akkor annak a felső 128-x bitje 0, az alsó x bitje az adott sorszám, és máris kész a 128 bites egyedi azonosítód.
Ha a sorszámot 128 biten tárolod, akkor kész is vagy, sok értelme ugyan nincs.
Ha 128 bites ID kell, akkor GUID/UUID, de annak meg semmi köze nem lesz a sorszámhoz (és minek is lenne?).
Miért szükséges a sorszám mint input hozzá?
Én a helyedben két dolgot csinálnék:
Akkor nem +15 kell, hanem annyi vezető nulla bit, amennyivel a sorszám rövidebb 128 bitnél.
Pl. sorszám=174258(10)=101010100010110010(2)=0...0101010100010110010(2)