Hirdetés

Új hozzászólás Aktív témák

  • bambano
    titán

    Sziasztok!

    PostgreSQL-ben a következőre keresek hatékony, azaz gyors megoldást: adott egy táblám, melynek az ID mezője serial típusú, azaz minden egyes insertnél eggyel nő az értéke. Olyan lekérdezést írok, ami csak az utolsó, azaz legnagyobb ID-jú sort updateli. Szerintetek miként lehet kiválasztani a leggyorsabban a legutolsóként beinsertelt sort?
    Most így csinálom:
    WHERE id IN (SELECT max(id) FROM table)

    Van ennél hatékonyabb, azaz gyorsabb módszer?

    ha postgresql-hez kötött megoldás is megfelel, akkor:

    where id = (select last_value from table_id_seq);

    ezzel a lekérdezéssel bármikor le tudod kérdezni a legutolsó id-t. de ez nem szép.

    ha az adott sessionben raktad bele a sort, akkor egy fokkal rendesebben néz ki:

    where id = (select currval('table_id_seq'));

    vagy, szerintem a legjobb megoldás, kérdezd le, hogy milyen értéket szúrt be az insert, ha ez megoldható:

    insert blablab returning id;

    ezt akkor tudod használni, ha az insertet akkor csinálod, amikor az id-je is kell.

Új hozzászólás Aktív témák