Avatar billede grav Nybegynder
16. december 2003 - 18:40 Der er 7 kommentarer og
2 løsninger

Hente sidst oprettede posts id

Når jeg opretter (via INSERT) en post i en tabel med et auto_increment felt, "id" vil jeg gerne have dette felt returneret.
Umiddelbart er løsningen at udføre
"SELECT * FROM tabel ORDER BY id DESC LIMIT 0, 1", men er der en mere elegant løsning, f.eks. en kombineret SELECT og INSERT (jeg ved ikke meget om kombinerede forespørgsler)?
Avatar billede clausjul Nybegynder
16. december 2003 - 18:41 #1
SELECT LAST_INSERT_ID() FROM table
Avatar billede ztyxx Nybegynder
16. december 2003 - 18:41 #2
select LAST_INSERT_ID()
Avatar billede clausjul Nybegynder
16. december 2003 - 18:42 #3
eller

SELECT MAX(id) FROM table
Avatar billede grav Nybegynder
16. december 2003 - 18:44 #4
OH ... det var elegant :-) Prøver lige at få det til at fungere, og så vender jeg tilbage.
Avatar billede arne_v Ekspert
16. december 2003 - 18:44 #5
SELECT MAX(id) er ikke god i en flerbruger sammenhæng !
Avatar billede grav Nybegynder
16. december 2003 - 19:00 #6
SELECT LAST_INSERT_ID(mit_id) FROM min_tabel
Kan ikke få det til at virke ... den returnerer blot alle posters id ... og ikke i rækkefølge med den nyeste først.
Avatar billede arne_v Ekspert
16. december 2003 - 19:05 #7
SELECT LAST_INSERT_ID()

uden feltmavn og uden tabel navn (ztyxx'es variant).

Det er nemlig en egenskab på connection.
Avatar billede mahler Nybegynder
16. december 2003 - 19:05 #8
Hvilket programmeringssprog bruger du?

I Perl's DBI kan du finde det som $dbh->{'mysql_insertid'};

I PHP findes funktionen mysql_insert_id()
Avatar billede grav Nybegynder
16. december 2003 - 19:44 #9
mahler: Jeg bruger PHP - troede egentligt bare jeg skulle bruge en alm. mysql_query() - jeg læser lige lidt mere om de relevante funktioner i PHP, så falder det nok på plads :-)
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester