I denne artikkelen, vi kommer til å lære hvordan å lage en temp tabellen og ytterligere slippe disse tabellene. Den midlertidige tabeller er økt-spesifikke tabeller som er opprettet i løpet av økten. Når økten avsluttes, bordet er falt av seg selv. En midlertidig tabell finnes innenfor en bare økt, og det er derfor et bord laget av en sesjon er ikke synlig for annen økt. For eksempel, Økt-ID-501 har opprettet en midlertidig tabell deretter økt-ID 502 ikke tilgang til eller manipulere det., To ulike økter kan ha en midlertidig tabell med samme navn.
Den midlertidige tabeller er nyttig når du ønsker å bruke en liten delmengde av det store bordet, og det blir brukt flere ganger i løpet av en lagret prosedyre. I slike tilfeller, i stedet for å legge filter på bordet flere ganger, kan du lagre den delsett av store bord i en midlertidig tabell og bruke det i en lagret prosedyre.,
Viktige fakta av midlertidige tabeller:
- MySQL Midlertidige tabellen har en frakoblet forhold med databaseskjema, noe som betyr at når vi slippe MySQL-databasen, vil det ikke nødvendigvis slippe den midlertidige tabeller i databasen
- InnoDB database engine ikke støtter komprimert, midlertidige tabellen. Hvis du hadde gjort det InnoDB_strict_mode parameter, så vil det returnere en feil., Hvis du har deaktivert InnoDB_strict_mode parameter, MySQL vil utstede en advarsel og opprette en tabell med en ikke-komprimert rad-format
- for Å opprette en midlertidig tabell innenfor den lagrede prosedyren, må brukeren ha opprette midlertidige tabellen privilegium. Når den er gitt, så hvis du vil oppdatere, slette eller sette inn data i den midlertidige tabellen ikke krever noen spesielle privilegier. Det er en implikasjon av dette problemet. Anta lagret prosedyre som bruker en midlertidig tabell og en BRUKER 1 som hadde utviklet prosedyren har opprette midlertidige tabellen privilegium., Nå, BRUKER 2 prøver å kjøre det, men det har ikke opprette midlertidig tabell tillatelse. I slike tilfeller, MySQL bruker privilegier som BRUKER 1 til å lage den midlertidige tabellen. Når prosedyren er fullført fullført, rettigheter vil bli tilbakestilt
- Du kan ikke opprette en midlertidig tabell basert på definisjonen som tabellen allerede har, og den ligger på MySQL bordplassen, en generell bordplassen, eller InnoDB bordplassen., For å opprette en midlertidig tabell basert på definisjonen av en annen tabell, må du bruke følgende syntaks for
1Velg midlertidige tabellen.., select * from
- i Motsetning til vanlige lag tabell uttalelser, Opprette midlertidige tabellen uttalelsen ikke føre til at implisitt commit
- Den midlertidige tabellen kan ha samme navn som den MySQL vanlig bord har. For eksempel, selv om en tabell som heter ansatt finnes i databasen, kan du opprette en midlertidig tabell som heter ansatt i databasen. I slike tilfeller, MySQL-tabellen blir utilgjengelige. Når den midlertidige tabellen er falt, den fysiske tabellen kan bli tilgjengelig igjen.,/div>
1234567opprette midlertidige tabellen tblemployee(Column_1 datatype,Column_2 datatype,Column_3 datatype,…)
Som du kan se, syntaks for å skape den midlertidige tabellen er den samme som kommandoen for å opprette en MySQL-tabell., Den eneste forskjellen er at du må angi midlertidige søkeord mellom opprette og tabell søkeord. Dette er svært viktig fordi hvis du glemmer å legge til søkeordet, det skaper en vanlig MySQL-tabellen.
Nå, la oss gå gjennom noen eksempler av den midlertidige tabellen., Jeg kommer til å vise følgende tilfeller:
- Opprette en temp bordet og sette inn data i tabellen
- Opprette en temp-tabellen ved hjelp utgang av select-uttrykk
- Utelat temp-tabellen
- Opprette en temp-tabell ved hjelp av strukturen i en annen tabell
Opprette en temp bordet og sette inn data
For å opprette en ny temp tabellen heter tblemployee på MySQL-databasen, bruker du den følgende spørring:
– Utfør følgende spørring til å sette inn data i temp tabellen.,
Når dataene er satt inn i temp tabellen, utfør følgende spørring til å bekrefte at data har blitt satt inn.
1
|
Velg * fra tblemployee;
|
følgende er resultatet:
Nå, for å kontrollere omfanget av tblemployee bordet, la oss kjøre den samme spørringen fra MySQL-kommando-linje-klienten., id=»22c41ae375″>
1
2
|
Bruk sakila;
Select * from tblemployee;
|
Output: som du kan se, spørringen har gitt en feilmelding:
Opprette en temp-tabellen ved hjelp utgang av select-uttrykk
Tenk om jeg ønsker å opprette en temp-tabell ved hjelp av resultatet av å velge en spørring., For eksempel, jeg ønsker å sette inn detaljer av filmene tabell med sin kategori, i en midlertidig tabell som heter temp_film_details. For å gjøre det, utfør følgende spørring.
Når detaljene er satt inn i temp tabellen, utfør følgende spørring for å vise data i temp tabellen., id=»2a48234df2″>
1
|
Utelat midlertidige tabellen tbl_film_details
|
Som jeg nevnte at på en database, en midlertidig tabell og en InnoDB bord kan ha samme navn, så sørg for at du angir den midlertidige søkeord, ellers, hvis en tabell med samme vil bli droppet
Oppsummering
I denne artikkel, vi har lært om MySQL temp bord, og egenskapene til det., Vi lærte også hvordan vi kunne lage og legge en temp-bord med ulike bruksmåter., Opprette og slippe temp tabeller
Lære MySQL: Slette og Oppdatere Uttalelser
Lære MySQL: Det Grunnleggende av MySQL Lagrede Prosedyrer
Lære MySQL: Det Grunnleggende av MySQL Utsikt
- Forfatter
- Siste Innlegg
Han har ekspertise på database design, ytelse tuning, sikkerhetskopiering og gjenoppretting, HA og DR oppsett, database migrasjon og oppgraderinger. Han har fullført B. Tech fra Ganpat Universitetet. Han kan nås på nisargupadhyay87@outlook.,com
- Lære MySQL: Det Grunnleggende av MySQL-Utsikt – 3 februar 2021
- Lære MySQL: Det Grunnleggende av MySQL Lagrede Prosedyrer – januar 8, 2021
- T-SQL-skript for å oppdatere statistikk basert på rad endring – desember 24, 2020
Leave a Reply