
Zitat von
Buebi
Danke,
currval() für PostgeSQL ist offensichtlich der einzig richtige Weg um gleiches wie unter MySQL mit PDO und lastInsertID() zu erreichen.
Die Syntax ist ein wenig grausam.
Vielleicht hilft's einem anderen, ich tat mich jedenfalls schwer.
Beispiel:
Statt Feld "ID" in der Tabelle 'Test' muss diese Feldbezeichnung '"Test_ID_seq"' gewählt werden, zwingend mit einfachen und den doppelten Anführungszeichen!
für PHP so notiert:
$db->query('SELECT currval('."'".'"Test_ID_seq"'."'".') AS "TTT"')
Huch, was läuft hier schief?:
Code:
test=# create table foobar (id serial);
NOTICE: CREATE TABLE will create implicit sequence "foobar_id_seq" for serial column "foobar.id"
CREATE TABLE
Zeit: 89,208 ms
test=*# insert into foobar values (default);
INSERT 0 1
Zeit: 0,325 ms
test=*# select currval('foobar_id_seq');
currval
---------
1
(1 Zeile) Andreas
Lesezeichen