Ich verwende Postgresql, wenn ich PDO verwenden möchte, um die neueste Einfüge-ID abzurufen, habe ich ein Problem. Hier ist mein Code:
%Vor%Die Fehlermeldung sagt
%Vor%Ich glaube, ich habe ein falsches Verständnis von "Sequenzobjekt" im PHP-Handbuch.
%Vor%Momentan ist "columnName" die Zeichenfolge dieses automatisch inkrementierten Attributs. Kann jemand darauf hinweisen, wo ich falsch gelaufen bin? Danke.
PostgreSQL verwendet Sequenzen , um Werte für serial
Spalten und serial
Spalten sind in der Regel das, was für "automatische Inkrementierung" von Spalten verwendet wird PostgreSQL. Sequenzen haben Namen und sind im Allgemeinen unabhängig von einer bestimmten Tabelle, so dass Sie eine Sequenz haben können, die eindeutige IDs für mehrere verschiedene Tabellen generiert. Der Name der Sequenz ist das, was lastInsertId
als Argument benötigt:
Zum Beispiel müssen Sie für PDO_PGSQL () den Namen eines Sequenzobjekts für den Name -Parameter angeben.
Das von PostgreSQL erstellte Sequenzobjekt heißt automatisch [table]_[column]_seq
, also:
Der Sequenzname lautet also ingredients_id_seq
,
Dieses Format löste tatsächlich meine Probleme !!!
Verwenden Sie den Namen der Sequenz anstelle des Spaltennamens
%Vor%Tags und Links php postgresql pdo lastinsertid