Archívum - Dec 3, 2020
postgres - insert into ... select - megadott sorrendben
Na ezzel mit kezdjek?
Van egy táblám, másodperc alapú timestamp mezővel, plusz egy olyan mező, ahol ugyan van egy sorszám, de ez a táblát író program újraindulásakor resetelődik.
Ha időrendben akarom látni a sorokat, akkor SELECT * FROM ... ORDER BY timestamp,sorszam; paranccsal tudom lekérdezni azokat. (A sima timestamp nem elég, mert másodpercenként több sor is keletkezhet)
Az a gondom, hogy felvennék a táblához egy BIGSERIAL típusú mezőt, de ugye ezt egy sima ALTER TABLE ... ADD COLUMN nem töltené fel. Jobb ötlet hiányában létrehoznék egy új táblát, a meglévő oszlopokkal+a bigserial mezővel és egy
INSERT INTO ujtabla SELECT * FROM regitabla ORDER BY timestamp,sorszam; paranccsal vinném át az új táblába. Gyönyörűen feltölti a bigserial oszlopot, csakhogy a sorrend nem stimmel, hiába az order by az insert selectjében. Olyan, mintha csak a timestamp alapján rendezne.
Hogy tudnám átmasolni a sorokat úgy, hogy jó sorszámokat kapjanak a másolatok?
Tényleg muszáj programot írni rá?
■ Van egy táblám, másodperc alapú timestamp mezővel, plusz egy olyan mező, ahol ugyan van egy sorszám, de ez a táblát író program újraindulásakor resetelődik.
Ha időrendben akarom látni a sorokat, akkor SELECT * FROM ... ORDER BY timestamp,sorszam; paranccsal tudom lekérdezni azokat. (A sima timestamp nem elég, mert másodpercenként több sor is keletkezhet)
Az a gondom, hogy felvennék a táblához egy BIGSERIAL típusú mezőt, de ugye ezt egy sima ALTER TABLE ... ADD COLUMN nem töltené fel. Jobb ötlet hiányában létrehoznék egy új táblát, a meglévő oszlopokkal+a bigserial mezővel és egy
INSERT INTO ujtabla SELECT * FROM regitabla ORDER BY timestamp,sorszam; paranccsal vinném át az új táblába. Gyönyörűen feltölti a bigserial oszlopot, csakhogy a sorrend nem stimmel, hiába az order by az insert selectjében. Olyan, mintha csak a timestamp alapján rendezne.
Hogy tudnám átmasolni a sorokat úgy, hogy jó sorszámokat kapjanak a másolatok?
Tényleg muszáj programot írni rá?