Scar: PGSQL: letzte oid auslesen

hallo,

wie kann ich denn innerhalb einer psql-funktion auf die oid des zuletzt eingefügten insert's zugreifen?

beispiel:

INSERT INTO foo VALUE ('foo');
INSERT 234234 1

wie kann ich hier innerhalb von sql, auf die 234234 zugreifen?

grüße Chris

  1. Hi Scar

    wie kann ich hier innerhalb von sql, auf die 234234 zugreifen?

    oid ist eine ganz normale Spalte die du allerdings nicht siehts solange du sie nicht angibst. Zugreifen kannst du also ganz normal mit:

    SELECT <FELDER>
      FROM foo
     WHERE oid = 234234

    Gruss Daniela

    1. und wie kann ich jetzt innerhald einer function direkt nach dem insert drauf zugreifen?

      grüße Chris

      1. evt versteht mans auch net...

        ich will auf die 234234 zugreifen... nicht auf den datensatz oder sonstwas... ich will nur die 234234 angreifen können um sie überhaupt weiter verwenden zu können

        1. Hi Scar

          Die steht in den Diagnostics drin:

          GET DIAGNOSTICS RESULT_OID = var_vom_typ_OID;

          http://www.postgresql.org/docs/7.4/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS

          Vorsicht falls du damit eine Tabelle abfragen willst: darauf scheint nicht per Default ein Index zu liegen wie ich erwartet hätte.

          Gruss Daniela

          1. danke für den tip, ich denk damit werd ich weiter kommen ;)

            grüße Chris