i den här artikeln kommer vi att lära oss att skapa ett temp-bord och ytterligare släppa dessa tabeller. De temporära tabellerna är sessionsspecifika tabeller som skapas i sessionen. När sessionen stängs, tappas tabellen av sig själv. En tillfällig tabell finns endast inom en session. därför är en tabell som skapats av en session inte synlig för en annan session. Sessions-ID 501 har till exempel skapat en tillfällig tabell och sessions-ID 502 kan inte komma åt den eller manipulera den., Två olika sessioner kan ha en tillfällig tabell med samma namn.
de temporära tabellerna är användbara när du vill använda en liten delmängd av den stora tabellen, och den används flera gånger inom en lagrad procedur. I sådana fall kan du, i stället för att applicera filtret på bordet flera gånger, spara delmängden stora tabeller i en tillfällig tabell och använda den inom en lagrad procedur.,
viktiga fakta i de temporära tabellerna:
- MySQL temporärt bord har ett frikopplat förhållande till databasschemat, vilket innebär att när vi släpper MySQL-databasen släpper den inte nödvändigtvis de temporära tabellerna i databasen
- InnoDB-databasmotorn stöder inte den komprimerade, temporära tabellen. Om du hade aktiverat innodb_strict_mode-parametern kommer det att returnera ett fel., Om du inaktiverade innodb_strict_mode-parametern kommer MySQL att utfärda en varning och skapa en tabell med ett icke-komprimerat radformat
- för att skapa en tillfällig tabell inom den lagrade proceduren måste användaren ha skapa tillfällig tabellbehörighet. När den har beviljats, sedan uppdatera, ta bort eller infoga data i den tillfälliga tabellen kräver inga särskilda privilegier. Det finns en implikation av detta beteende. Antag att den lagrade proceduren som använder en tillfällig tabell och en användare 1 som har utvecklat proceduren har behörigheten Skapa tillfällig tabell., Nu försöker användare 2 att utföra det, men det har inte behörigheten Skapa tillfällig tabell. I sådana fall använder MySQL användarnas privilegier 1 för att skapa den tillfälliga tabellen. När proceduren är klar kommer privilegierna att återställas
- Du kan inte skapa en tillfällig tabell baserat på definitionen som tabellen redan har, och den finns på MySQL tablespace, en allmän tablespace eller InnoDB tablespace., För att skapa en temporär tabell baserad på definitionen av en annan tabell måste du använda följande syntax
1välj tillfällig tabell.., välj * från
- till skillnad från vanliga create table-satser orsakar inte den implicita commit
- den temporära tabellen kan ha samma namn som MySQL regular table har. Till exempel, även om en tabell som heter employee finns i databasen, kan du skapa en tillfällig tabell som heter employee i databasen. I sådana fall blir MySQL-tabellen otillgänglig. När den tillfälliga tabellen har tappats kan den fysiska tabellen nås igen.,div>
1234567skapa tillfällig tabell tblemployee(column_1 datatype,column_2 datatype,column_3 datatype,…)
som du kan se är syntaxen för att skapa den tillfälliga tabellen densamma som syntaxen för att skapa en MySQL-tabell., Den enda skillnaden är att du måste ange det tillfälliga sökordet mellan Skapa och tabell sökord. Detta är mycket viktigt eftersom om du glömmer att lägga till nyckelordet, det skapar en vanlig MySQL tabell.
låt oss nu gå igenom några exempel på den tillfälliga tabellen., Jag kommer att visa följande användningsfall:
- skapa en temp-tabell och infoga data i tabellen
- skapa en temp-tabell med hjälp av utmatningen från select-satsen
- släpp temp-tabellen
- skapa en temp-tabell med hjälp av strukturen i en annan tabell
skapa en temp-tabell och infoga data
för att skapa en ny temp-tabell som heter tblemployee på MySQL-databasen, utför följande fråga:
utför följande fråga för att infoga data i temp-tabellen.,
När data infogas i temp-tabellen, utför följande Fråga för att verifiera att data har infogats.
1
|
Välj * från tblemployee;
|
Följande är utgången:
nu, för att verifiera omfattningen av tblemployee-tabellen, låt oss köra samma fråga från MySQL-kommandoradsklienten., id=”22c41ae375″>
Leave a Reply