Hvordan hente en identitet verdi etter et innlegg
Når en ny rekord er satt inn i en database, vil en bruker ofte ønsker å hente identitetsverdi (eller id) av den nyeste rad. Denne verdien er ofte nødvendig for å legge til en link, eller utenlandske nøkkelen, til en annen database tabell. Identiteten verdi kan oppnås ved hjelp av SQL for å hente den nye verdien. Dette kan gjøres i SQL Server, bruker samme SQL-spørring, noe som vil bidra til å spare ressurser, som bare en spørring trenger å bli kalt. I MySQL, er identiteten feltet hentes ved hjelp av funksjoner.
Bruksanvisning
Ved hjelp av SQL Server
1 Åpne en SQL-editor program.
2 Legg til følgende kode:
INSERT INTO MyTable (MyColumn) verdier ( "AnyValue")
Dette vil sette inn ny rad med data.
3 Legg kode for å hente identitetskolonnen for den nye raden:
VELG NEWID = SCOPE_IDENTITY ()
Siden introduksjonen av SQL Server 2000 har denne funksjonen blitt lagt til og det er mer nøyaktig enn @@ IDENTITY, som ble brukt før dette.
Ved hjelp av MySQL database
4 Åpne en MySQL program.
5 Kontroller at identitetskolonnen, på databasetabell, bruker AUTO_INCREMENT funksjon. Hvis du setter inn en post i en tabell som inneholder dette, kan du få den verdien som er lagret i denne kolonnen ved å ringe mysql_insert_id () eller LAST_INSERT_ID () funksjoner.
6 Legg til følgende kode, til å automatisk oppdatere en annen tabell, med identiteten til den nye raden fra den første tabellen:
INSERT INTO MyFirstTable (auto, tekst)
VALUES(NULL,'text'); # generate ID by inserting NULL
INSERT INTO MySecondTable (id, tekst)
VALUES(LAST_INSERT_ID(),'text'); # use ID in second table
Identiteten feltet automatisk opprettet i den første tabellen kalles å bruke "LAST_INSERT_ID ()" -funksjon. Dette blir satt inn i tabellen "MySecondTable".
Hvis du ønsker å bruke Identity feltet i PHP-koden, får den nye identiteten feltet ved hjelp av følgende MySQL funksjonskode:
used_id = mysql_insert_id (og mysql);
Bruke Access database
7 Åpne en SQL-editor program.
8 Legg til følgende SQL-setning:
INSERT INTO MyTable (MyColumn) verdier ( "AnyValue")
Dette setter inn en ny rad i en database tabell.
9 Legg kode for å returnere Identity feltet for den nye raden:
SELECT @@ IDENTITY
Innsatsen uttalelse og denne uttalelsen, fra forrige trinn, kan legges inn i samme søket. Dette vil bety at bare én samtale er gjort på databasen og vil spare ressurser på databasetjeneren.