Wie erhalte ich in PostgreSQL die letzte in eine Tabelle eingefügte ID?
In MS SQL gibt es SCOPE_IDENTITY().
Bitte raten Sie mir nicht, so etwas zu verwenden:
select max(id) from table
Wie erhalte ich in PostgreSQL die letzte in eine Tabelle eingefügte ID?
In MS SQL gibt es SCOPE_IDENTITY().
Bitte raten Sie mir nicht, so etwas zu verwenden:
select max(id) from table
SELECT CURRVAL(pg_get_serial_sequence('my_tbl_name','id_col_name'))
Sie müssen natürlich den Tabellennamen und den Spaltennamen angeben.
Dies gilt für die aktuelle Sitzung/Verbindung http://www.postgresql.org/docs/8.3/static/functions-sequence.html
Siehe das folgende Beispiel
CREATE TABLE users (
-- make the "id" column a primary key; this also creates
-- a UNIQUE constraint and a b+-tree index on the column
id SERIAL PRIMARY KEY,
name TEXT,
age INT4
);
INSERT INTO users (name, age) VALUES ('Mozart', 20);
Um die zuletzt eingefügte ID zu erhalten, verwenden Sie für die Tabelle "user" seq den Spaltennamen "id".
SELECT currval(pg_get_serial_sequence('users', 'id'));
Der bessere Weg ist die Verwendung von einfügen. mit Rückkehr. Obwohl es bereits dieselben Antworten gibt, möchte ich nur hinzufügen, dass Sie, wenn Sie dies in einer Variablen speichern möchten, Folgendes tun können
insert into my_table(name) returning id into _my_id;
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.