I denne artikel, vi vil lære, hvordan du opretter en temp bordet og yderligere fald i disse tabeller. De midlertidige tabeller er sessionsspecifikke tabeller, der oprettes i sessionen. Når sessionen lukker, tabes bordet af sig selv. En midlertidig tabel findes kun i en session; derfor er en tabel oprettet af en session ikke synlig for en anden session. For eksempel har Session ID 501 oprettet en midlertidig tabel, så session ID 502 kan ikke få adgang til den eller manipulere den., To forskellige sessioner kan have et midlertidigt bord med samme navn.
de midlertidige tabeller er nyttige, når du vil bruge en lille delmængde af det store bord, og det bruges flere gange inden for en gemt procedure. I sådanne tilfælde kan du i stedet for at anvende filteret på bordet flere gange gemme undergruppen af store tabeller i et midlertidigt bord og bruge det inden for en gemt procedure.,
Vigtige kendsgerninger den midlertidige tabeller:
- MySQL Midlertidige tabel har en afkoblet forhold til det databaseskema, hvilket betyder, at når vi falder MySQL-database, er det ikke nødvendigvis droppe den midlertidige tabeller i databasen
- InnoDB database engine understøtter ikke komprimerede, midlertidig tabel. Hvis du havde aktiveret parameteren InnoDB_strict_mode, returnerer den en fejl., Hvis du deaktiverede parameteren InnoDB_strict_mode, udsender Mys .l en advarsel og opretter en tabel med et ikke-komprimeret rækkeformat
- for at oprette en midlertidig tabel inden for den lagrede procedure skal brugeren have Opret midlertidig tabel privilegium. Når det er givet, kræver det ikke særlige privilegier at opdatere, slette eller indsætte dataene i den midlertidige tabel. Der er en implikation af denne adfærd. Antag, at den lagrede procedure, der bruger en midlertidig tabel og en bruger 1, der havde udviklet proceduren, har privilegiet Opret midlertidig tabel., Nu bruger 2 Forsøger at udføre det, men det har ikke opret midlertidig tabel tilladelse. I sådanne tilfælde bruger MYS .l brugerens privilegier 1 til at oprette den midlertidige tabel. Når proceduren er gennemført, vil privilegierne blive vendt tilbage
- du kan ikke oprette en midlertidig tabel baseret på den definition, som tabellen allerede har, og den ligger på Mys .l-tablespace, et generelt tablespace eller InnoDB-tablespace., For at oprette en midlertidig tabel, der er baseret på den definition af et andet bord, du skal bruge følgende syntaks
1Vælg midlertidig tabel.., select * from
- i Modsætning til almindelige skabe tabel udtalelser, Create temporary table-sætning, ikke medføre, at den implicitte begå
- Den midlertidige tabel kan have det samme navn som MySQL regelmæssig tabel har. For eksempel, selvom der findes en tabel med navnet medarbejder i databasen, kan du oprette en midlertidig tabel med navnet medarbejder i databasen. I sådanne tilfælde bliver Mys .l-tabellen utilgængelig. Når den midlertidige tabel er droppet, kan den fysiske tabel åbnes igen.,/div>
1234567create temporary table tblemployee(Column_1 datatype,Column_2 datatype,Column_3 datatype,…)
Som du kan se, syntaks til at oprette midlertidige tabellen er den samme som den syntaks for oprettelse af en MySQL-tabel., Den eneste forskel er, at du skal angive det midlertidige søgeord mellem Opret og tabel søgeord. Dette er meget vigtigt, fordi hvis du glemmer at tilføje søgeordet, skaber det en regelmæssig Mys .l-tabel.
lad os nu gennemgå nogle eksempler på den midlertidige tabel., Jeg kommer til at demonstrere, at følgende use cases:
- Create a temp tabel og indsætte dataene i tabellen
- Create a temp tabel ved hjælp af output select-sætning
- Slip temp tabellen
- Create a temp tabel ved hjælp af strukturen i en anden tabel
Create a temp tabel og indsætte data
For at oprette en ny temp tabel, der hedder tblemployee på MySQL-database, kan du udføre følgende forespørgsel:
Udfør følgende forespørgsel til at indsætte data i den midlertidige tabel.,
Når data er indsat i temp-tabellen, skal du udføre følgende forespørgsel for at kontrollere, at data er indsat.
1
|
Vælg * fra tblemployee;
|
følgende er output:
Nu, for at kontrollere omfanget af tblemployee bordet, lad os køre den samme forespørgsel fra MySQL kommando-line klient., id=”22c41ae375″>
1
2
|
Brug sakila;
Select * from tblemployee;
|
Output: som du kan se, at forespørgslen ikke har givet det en fejl:
Create a temp tabel ved hjælp af output select-sætning
Antag, at jeg ønsker at oprette en temp tabel ved hjælp af output select-forespørgsel., For eksempel vil jeg indsætte detaljerne i filmtabellen med dens kategori i en temp-tabel ved navn temp_film_details. For at gøre det skal du udføre følgende forespørgsel.
Når detaljer er indsat i temp-tabellen, skal du udføre følgende forespørgsel for at se dataene i temp-tabellen., id=”2a48234df2″>
1
|
Drop midlertidig tabel tbl_film_details
|
Som jeg har nævnt, at de på en database, en midlertidig tabel og en Harmløs tabel kan have samme navn, så sørg for at angive den midlertidige søgeord; ellers, hvis det er en tabel med det samme vil blive droppet
Oversigt
I denne artikel, vi har lært om MySQL temp tabeller, og de egenskaber det., Vi lærte også, hvordan vi kunne oprette og droppe en temp tabel med forskellige use cases., Oprette og drop temp tabeller
Lær MySQL: Delete og Update Udtalelser
Lær MySQL: Det Grundlæggende i MySQL Lagrede Procedurer
Lær MySQL: Det Grundlæggende i MySQL Synspunkter
- Forfatter
- Seneste Indlæg
Han har ekspertise i database-design, performance-tuning, backup og recovery, HA og DR setup, database vandringer og opgraderinger. Han har afsluttet B. Tech fra Ganpat University. Han kan nås på nisargupadhyay87@outlook.,com
- Lær MySQL: Det Grundlæggende i MySQL Views – februar 3, 2021
- Lær MySQL: Det Grundlæggende i MySQL Lagrede Procedurer – januar 8, 2021
- T-SQL scripts til at opdatere statistikker baseret på den række, ændring – December 24, 2020
Leave a Reply