last_insert_id in postgres

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Freelance medior java ontwikkelaar Belastingdienst

Concern: Belastingdienst B/cao Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 85,00 Startdatum inzet: 24-10-2022 Einddatum: open De Douane Keten Aangifte zoekt een Medior Java Ontwikkelaar De Douane Keten Aangifte (DA) is verantwoordelijk voor het ontwikkelen, beheren en beschikbaar stellen van IV-voorzieningen voor de Douane applicaties, die het aangifteproces voor Douane ondersteunen. Daaronder vallen de systemen voor o.a. invoeren, doorvoeren en uitvoeren van goederen naar de EU (en Nederland). Keten DA is een van de drie ketens van IV Douane. Ontwikkeling van nieuwe applicaties en verbetering/uitbreiding van bestaande applicaties vindt binnen IV Douane plaats in tweewekelijkse sprints m.b.v. Agile-ontwikkelmethoden.

Bekijk vacature »

Freelance medior java ontwikkelaar Belastingdienst

Concern: Belastingdienst B/cao Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 85,00 Startdatum inzet: 24-10-2022 Einddatum: open De Douane Keten Aangifte zoekt een Medior Java Ontwikkelaar De Douane Keten Aangifte (DA) is verantwoordelijk voor het ontwikkelen, beheren en beschikbaar stellen van IV-voorzieningen voor de Douane applicaties, die het aangifteproces voor Douane ondersteunen. Daaronder vallen de systemen voor o.a. invoeren, doorvoeren en uitvoeren van goederen naar de EU (en Nederland). Keten DA is een van de drie ketens van IV Douane. Ontwikkeling van nieuwe applicaties en verbetering/uitbreiding van bestaande applicaties vindt binnen IV Douane plaats in tweewekelijkse sprints m.b.v. Agile-ontwikkelmethoden.

Bekijk vacature »

Dennis

dennis

22/12/2008 16:21:00
Quote Anchor link
ik ben bijna klaar met mijn Database class
die zowel met mysqli werkt als nu ook met postgres

alleen er is 1 functie waar ik niet uitkom

ik kan nergens vinden wat de postgreSQL versie is van mysqli_insert_id.
nu werkt postgres met sequences en niet met auto_increment maar mij lijkt dat het toch mogelijk moet zijn.

weet iemand hier een oplossing voor.

mvg,
Dennis
 
PHP hulp

PHP hulp

05/10/2022 13:38:20
 
Frank -

Frank -

22/12/2008 16:29:00
Quote Anchor link
Die is er ook niet, zo werkt het namelijk niet in de grote database-wereld.

Vooraf het id opvragen (dus nog voordat de INSERT is uitgevoerd):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT NEXTVAL('naam_van_de_sequence') AS next_id;

Ga dit resultaat fetchen en zet hem in je INSERT:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO tabelnaam (id, kolomnaam)
VALUES($next_id, 'waarde');

Je kunt ook achteraf opvragen wat het is geworden door CURRVAL() of LASTVAL() te gebruiken, ook hier weer een SELECT-query voor gebruiken.

Een andere hele handige optie is RETURNING gebruik bij de INSERT-query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO tabelnaam (kolomnaam)
VALUES('waarde') RETURNING id;

Ga dit resultaat fetchen zoals je een SELECT fetcht en klaar ben je.

Uiteraard kan het onmogelijk met MySQLi werken, dat is een aanpak voor MySQL-databases. Het heet tenslotte geen pgSQLi...

Vergeet niet dat iedere database anders is en dat je altijd specifieke SQL nodig hebt. Tenzij je alle voordelen van jouw database wilt negeren en wat generieke SQL wilt gebruiken. Snelheid kun je dan beter vergeten.

Ps. RETURNING is pas sinds versie 8.2 beschikbaar, controleer dat wel even.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.