---
title: "Kombinerad select/insert"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21391-kombinerad-select-insert"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "spango"
published: "2001-03-12T17:54:00.000Z"
updated: "2001-03-15T22:13:00.000Z"
replies: 9
views: 367
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/21391-kombinerad-select-insert"
---

# Kombinerad select/insert

## #1 — spango, 2001-03-12T17:54Z

Hur plockar man smartast fram data från en nyligen inlagd rad i en tabell?
Ponera att man har en räknare som primärnyckel i en tabell. Man lägger in en ny rad i tabellen, men låter denna kolumn med räknaren automagiskt fylla i sig själv.
Om man då skulle vilja lägga in en massa poster relaterade till den tabellen, med den nya radens räknarfält som främmande nyckel.
Kort sagt: Hur får man fram data för den senast inlagda raden i en databas? Man kan fstås använda sig av nåt i stil med SELECT \* FROM en_tabell ORDER BY räknaren ASC LIMIT 1 i MySQL, eller använda TOP 1 i Access, men det känns liksom inte rätt.
Vad göra? Nåt i stil med SELECT räknaren FROM (INSERT INTO en_tabell VALUES (1, 2, 3))

Permalänk: https://www.webforum.nu/p/21391

## #2 — @nders, 2001-03-12T18:11Z

pratar du sql server nu?

i så fall så kan du göra så här:

```
insert into blabla (blah1, blah1) values ('blah1', 'blah2'); select @@identity
```

du får då ett jättepyttigt 1x1-recordset som innehåller id på den insertade posten. :)

mvh,

Permalänk: https://www.webforum.nu/p/351823

## #3 — spango, 2001-03-12T18:14Z

Nä, jag pratade hypotetiskt ;) 
Det finns alltså inget generellt sätt att göra det på?

Permalänk: https://www.webforum.nu/p/351824

## #4 — @nders, 2001-03-12T18:15Z

nix, pix päronpung. :)

du ska inte komma här och generalisera! ;)

Permalänk: https://www.webforum.nu/p/351825

## #5 — spango, 2001-03-13T14:37Z

Ok, jag hade tänkt att säga "tack" här, men jag tror jag struntar i det eftersom du inte gav det svar jag ville ha ;)

Permalänk: https://www.webforum.nu/p/351826

## #6 — @nders, 2001-03-13T14:46Z

bra! ;)

Permalänk: https://www.webforum.nu/p/351827

## #7 — SPiN, 2001-03-13T21:28Z

Om du proggar PHP finns det en enkelt funktion för detta, typ mysql_select_id(); eller nåt liknande... Kommer inte ihåg den just nu :)

Men det har ju inte med SQL att göra ;)

Permalänk: https://www.webforum.nu/p/351828

## #8 — spango, 2001-03-13T23:32Z

```
SELECT LAST_INSERT_ID();
```

Blir det i MySQL. Men då kan man ju inte generalizera ;)

Permalänk: https://www.webforum.nu/p/351829

## #9 — Toonster, 2001-03-14T15:19Z

Eftersom det är en räknare, så kan du inte få ut detta id'et utan att skapa en ny fråga till databasen, när man använder script.

alltså:

Först INSERT

Sedan SELECT

Detta gäller även i MySql, med:

SELECT LAST_INSERT_ID();

Man måste köra en ny fråga med den select frågan.

Så man kommer nog inte undan 2 frågor i scriptet, fast man kan behöver bara en anslutning...

Man kan göra en komponent som lägger till data och returnerar id. Eller varför inte en Stored Procedure!

/T

Permalänk: https://www.webforum.nu/p/351830

## #10 — spango, 2001-03-15T22:13Z

Nå, det var väl det man kunde ana. Det suger att jämt ha rätt ;)

Permalänk: https://www.webforum.nu/p/351831

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21391-kombinerad-select-insert
