Avatar billede zetn Nybegynder
31. juli 2005 - 13:06 Der er 12 kommentarer og
1 løsning

Id'et for det som lige er sat ind

Hey,

Jeg har to insert strenge, hvor der i den første bliver indsat en bruger. Den anden SQL streng skal så bruge ID'et for den bruger som netop er blive indsat.

Håber nogen kan hjælpe?
Avatar billede bootie Nybegynder
31. juli 2005 - 13:18 #1
Er der mulighed for at 2 brugere kan hedde det samme?
Ellers er det jo bare at spørge på IDet på den bruger du lige har sat ind

"SELECT id FROM users WHERE username = '"& username &"'"

Men selvfølgelig hvis du tillader at det samme brugernavn eksistere 2 gange kan det jo ikke lade sig gøre.
Avatar billede zetn Nybegynder
31. juli 2005 - 13:31 #2
Jeg leder efter den funktion der kan tage id'et udfra den SQL streng der lige er blevet executed
Avatar billede softspot Forsker
31. juli 2005 - 13:33 #3
SELECT @@IDENTITY

henter det sidste ID der er oprettet på den påg. connection.
Avatar billede bootie Nybegynder
31. juli 2005 - 13:35 #4
> Is there a way to return a field value from an insert query? Instead
> of (1) inserting a new record and then (2) a select to get the match
> of the new record and get the row id from the query (auto increment,
> primary key), is there a way I can INSERT the new record and get mysql
> to tell me the row_id value without querying a second time?

SELECT LAST_INSERT_ID() FROM foo;
Avatar billede softspot Forsker
31. juli 2005 - 13:37 #5
Men hvis der er flere brugere som opdaterer oveni hinanden, så vil den måske give et forkert id...
Avatar billede softspot Forsker
31. juli 2005 - 13:38 #6
opdaterer skal ovenfor opfattes som opretter :)
Avatar billede arne_v Ekspert
31. juli 2005 - 13:54 #7
Det afhænger jo lidt af databasen !

softspots @@IDENTITY virker med Access og SQLServer

booties LAST_INSERT_ID() er til MySQL

begge er på connection d.v.s. at hvis man som man ofte gør opretter
en connection og laver en eller flere SQL sætninger på den i sin ASP
side, så er der ikke noget problem med flere samtidige brugere
Avatar billede zetn Nybegynder
02. august 2005 - 10:36 #8
Hvordan ville i så skrive hele sql strengen?
Avatar billede softspot Forsker
02. august 2005 - 10:40 #9
set conn = Server.CreateObject("ADODB.Connection")
conn.open strDSN
conn.Execute(FørsteInsertHer)
set rs = conn.Execute("SELECT @@IDENTITY AS LastId")
if not rs.eof then
  newID = rs("LastId")
  conn.Execute(AndenInsertDerBrugerIdFraDenFørsteHer)
end if
conn.close
set conn = nothing
Avatar billede zetn Nybegynder
11. august 2005 - 13:52 #10
Softspot, det var lige det jeg skulle bruge. Smid et svar.
Avatar billede softspot Forsker
11. august 2005 - 13:54 #11
Det er jeg glad for at høre :D
Avatar billede zetn Nybegynder
11. august 2005 - 13:55 #12
Takker :)
Avatar billede softspot Forsker
11. august 2005 - 14:01 #13
Og jeg takker for point :)
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
Kurser inden for grundlæggende programmering

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