Mysql létrehozás új oszlop és kitöltése automatikusan

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

create view tabla_x as select *,sorszam+15 rangsor from tabla;

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.

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.

"Az INSERT INTO amivel hozzáadhatom az oszlopot?" - Mármint alter table...

Hello !

TÁROLT ELJÁRÁS témakörre keress rá ( stored procedure )

CSZ

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?

Miért szükséges a sorszám mint input hozzá?

Én a helyedben két dolgot csinálnék:

  • a regisztrációs / új recordot létrehozó folyamatba betennék egy uuid generálást, ha mindenképp adatbázis oldalon kell akkor akár lehet ez egy trigger, vagy ha még több dolgot szuszakolnátok adatbázis szintre akkor a fent említett tárolt eljárás
  • egyszeri scripttel feltölteném a meglevő adatokból hiányzókat