/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Fortæl mig hvad din nøgle
Fra : Kristian Thy


Dato : 15-11-03 18:22

Jeg har følgende lille tankeeksperiment:

Vi forestiller os at vi har en tabel med et felt foo - det kan være
hvadsomhelst, VARCHAR, INT, det er lige meget. Så har tabellen også et
felt ID, der er INT AUTOINCREMENT PRIMARY KEY. Tabellen tilgås gennem
et web-interface.

Spørgsmålet er så: Hvis jeg lige har sat en værdi ind i foo i en ny
række i tabellen, hvordan kan jeg så vælge den række igen?
Primærnøglen er jo autogenereret, og foo er ikke nødvendigvis unik. Da
det er webbaseret kan jeg ikke bare aflæse højeste ID før
INSERT-statementet og så vælge den +1.

Nogen ideer? Jeg ved godt det er på grænselandet mellem database- og
php-gruppen, men jeg prøver her først...

\\kristian
--
"The ability to enslave a planet is insignificant
next to the power of the Macintosh" --Darth Vader

 
 
Jimmy (15-11-2003)
Kommentar
Fra : Jimmy


Dato : 15-11-03 18:35


"Kristian Thy" <thy@it.edu> wrote in message
news:bp5nbt$1klp98$1@ID-157676.news.uni-berlin.de...

> Spørgsmålet er så: Hvis jeg lige har sat en værdi ind i foo i en ny
> række i tabellen, hvordan kan jeg så vælge den række igen?

LAST_INSERT_ID()
http://www.mysql.com/doc/en/Miscellaneous_functions.html


> Nogen ideer? Jeg ved godt det er på grænselandet mellem database- og
> php-gruppen, men jeg prøver her først...


php har MySQL-specifikke funktioner som kan det samme.

Mvh
Jimmy



Kristian Thy (16-11-2003)
Kommentar
Fra : Kristian Thy


Dato : 16-11-03 00:14

Jimmy uttered:
> LAST_INSERT_ID()
> http://www.mysql.com/doc/en/Miscellaneous_functions.html

Det var jo lige det jeg ledte efter (ikke at jeg står og skal brge det
til noget pt, men det er rart at blive klogere). Og den er tilmed
sessions-specifik, herligt herligt :)

> php har MySQL-specifikke funktioner som kan det samme.

Okay, men jeg var egentlig mere ude på at løse problemet i
database-delen af setuppet.

\\kristian
--
A beard is the ultimate symbol of a man's rebellion
against polite society and personal grooming. It's a
Communist Manifesto, right there on your chin.

Kasper Katzmann (15-11-2003)
Kommentar
Fra : Kasper Katzmann


Dato : 15-11-03 19:03

Kristian Thy skrev:
> Spørgsmålet er så: Hvis jeg lige har sat en værdi ind i foo i en ny
> række i tabellen, hvordan kan jeg så vælge den række igen?

Du skriver ikke hvilken database du bruger, men jeg går ud fra at det mySql.
MySql kender jeg så ikke noget til

Men skulle det alligevel være MSSQL så kan du kigge på @@IDENTITY. Den
indeholder sessionens sidst indsatte Identity.

--
Mvh
Kasper Katzmann
Katzmann Consulting
http://www.katzmann.dk



Kristian Thy (16-11-2003)
Kommentar
Fra : Kristian Thy


Dato : 16-11-03 00:16

Kasper Katzmann uttered:
> Du skriver ikke hvilken database du bruger, men jeg går ud fra at
> det mySql. MySql kender jeg så ikke noget til

Da det som beskrevet var et tankeeksperiment var jeg egt. interesseret
i flere modeller. Dog er MSSQL nok ikke noget jeg får brugt indenfor
en overskuelig fremtid :)

\\kristian
--
A beard is the ultimate symbol of a man's rebellion
against polite society and personal grooming. It's a
Communist Manifesto, right there on your chin.

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste