12. maj 2003 - 13:38Der er
9 kommentarer og 2 løsninger
Query returnere værdien af et autoinc. felt??
Jeg sender et query til bruger tabelen i min db, hvor jeg opretter en ny bruger... Den bruger får så et brugernr. af db, når rækken indsættes (et autoinc. felt)... Men jeg skulle gerne have det bruger nr ud af db'en... Der er ingen af de andre felter der er entydige.. heller ikke sammensatte entydige...
Jeg kunne løse det i java, ved at hente det højeste brugernr og lægge én til... men det kunne jeg godt tænke at undgå...
"select max(id)" er ikke brugbart hvis der kan forekomme samtidige brugere på databasen, da man jo får det højeste ID og ikke nødvendigvis det man selv lige har indsat.
Benyt istedet "select LAST_INSERT_ID()" som el_barto foreslår.
I java har du faktisk muligheden for at caste dit ResultSet til MySQL's version af ResultSet som indeholder LAST_INSERT_ID. Dette er dog ikke nogen køn løsning da man øger bindingen til MySQL, og løsningen virker iøvrigt ikke på prepared statements.
JDBC3 driverne er dog blevet udvidet med metodekald til autogenerede nøgler, men det er ikke lykkedes for mig at få det til at virke den vej endnu.
hvis du kalder "SELECT LAST_INSERT_ID" umiddelbart efter dit INSERT, vil du få et ResultSet tilbage med en række og et felt, indeholdende værdien af den netop generede nøgle.
Jeg har fået lavet mig en nydelig lille "SELECT LAST_INSERT_ID" løsning... så kan dem der mener de fortjener nogle point, ikke lige lave et svar...
Synes godt om
Slettet bruger
14. maj 2003 - 10:19#11
et lille svar ;)
Synes godt om
Ny brugerNybegynder
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.