Re: last_insert_id (php)

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: last_insert_id (php)
Date: 2006-07-24 19:06:31
Message-ID: 20060724190631.GA8099@webserv.wug-glas.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

am 24.07.2006, um 17:31:34 +0200 mailte Marco Behnke folgendes:
> Ok, auf zu Frage drei :)

Okay ;-)

> In meinem alten System (mysql) habe ich nach dem Speichern von Objekten
> mit mysql_insert_id() die zuletzt vergebene ID des auto_increment
> ausgelesen und so die ID des Objektes ermittelt.
>
> Das Postgres ein anderes Konzept hat (Sequenzen) und ich keine Funktion
> gesehen habe, die soetwas macht, werde ich mir wohl mit einem Umweg

Nein. nextval() und currval() sind Deine Freunde.
20:59 < akretschmer> ??currval
20:59 < rtfm_please> For information about currval
20:59 < rtfm_please> see http://www.postgresql.org/docs/current/static/functions-sequence.html

Mach Deinen INSERT, und dann:

INSERT ... VALUES (..., currval(name_der sequence), ...);

Das ist innerhalb Deiner Session eindeutig, und auch für außerhalb
Deiner Session. Selbst ein ROLLBACK verändert _NICHT_ Deine Sequence.

Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47215, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Robert Max Kramer 2006-07-26 09:32:03 Kann man Bytea-Daten via Monitor psql auslesen?
Previous Message Stefan Kaltenbrunner 2006-07-24 16:44:05 Re: last_insert_id (php)