In dit artikel gaan we leren hoe je een temp table maakt en deze tabellen verder laat vallen. De tijdelijke tabellen zijn sessie-specifieke tabellen die binnen de sessie worden gemaakt. Wanneer de sessie sluit, wordt de tafel vanzelf weggelaten. Een tijdelijke tabel bestaat alleen binnen een sessie; daarom is een tabel gemaakt door een sessie niet zichtbaar voor een andere sessie. Sessie ID 501 heeft bijvoorbeeld een tijdelijke tabel gemaakt en sessie ID 502 kan deze niet openen of manipuleren., Twee verschillende sessies kunnen een tijdelijke tabel met dezelfde naam hebben.
De tijdelijke tabellen zijn handig als u een kleine subset van de grote tabel wilt gebruiken, en het wordt meerdere keren gebruikt binnen een opgeslagen procedure. In dergelijke gevallen kunt u, in plaats van het filter meerdere keren op de tabel toe te passen, de subset van grote tabellen opslaan in een tijdelijke tabel en deze gebruiken binnen een opgeslagen procedure.,
belangrijke feiten van de tijdelijke tabellen:
- MySQL tijdelijke tabel heeft een ontkoppelde relatie met het databaseschema, wat betekent dat wanneer we de MySQL database laten vallen, het niet noodzakelijk de tijdelijke tabellen binnen de database laat vallen
- de InnoDB database engine ondersteunt de gecomprimeerde, tijdelijke tabel niet. Als je de innodb_strict_mode parameter had ingeschakeld, dan zal het een fout retourneren., Als u de parameter InnoDB_strict_mode uitschakelt, zal MySQL een waarschuwing geven en een tabel aanmaken met een niet-gecomprimeerde rijindeling
- om een tijdelijke tabel te maken binnen de opgeslagen procedure, moet de gebruiker tijdelijke tabelrechten hebben. Zodra het is verleend, vereist het bijwerken, verwijderen of invoegen van de gegevens in die tijdelijke tabel geen speciale privileges. Er is een implicatie van dit gedrag. Stel dat de opgeslagen procedure die een tijdelijke tabel gebruikt en een gebruiker 1 die de procedure had ontwikkeld, De create temporary table privilege heeft., Nu, gebruiker 2 probeert om het uit te voeren, maar het heeft niet de create temporary table permission. In dergelijke gevallen gebruikt MySQL de privileges van Gebruiker 1 om de tijdelijke tabel aan te maken. Zodra de procedure succesvol is voltooid, zullen de privileges worden teruggezet
- u kunt geen tijdelijke tabel maken op basis van de definitie die de tabel al heeft, en deze bevindt zich op MySQL-tablespace, een algemene tablespace of InnoDB-tablespace., Om een tijdelijke tabel te maken op basis van de definitie van een andere tabel, moet u de volgende syntaxis gebruiken
1selecteer tijdelijke tabel.., selecteer * uit
- In tegenstelling tot reguliere create table statement veroorzaakt het create temporary table statement niet de impliciete commit
- de tijdelijke tabel kan dezelfde naam hebben als de reguliere tabel van MySQL. Hoewel er bijvoorbeeld een tabel met de naam werknemer in de database bestaat, kunt u een tijdelijke tabel met de naam werknemer in de database maken. In dergelijke gevallen wordt de MySQL-tabel ontoegankelijk. Zodra de tijdelijke tabel is gevallen, kan de fysieke tabel opnieuw worden geopend.,/div>
1234567het maken van tijdelijke tabel tblemployee(Column_1 datatypeColumn_2 datatypeColumn_3 datatype…)zoals u kunt zien, is de syntaxis om een tijdelijke tabel aan te maken dezelfde als de syntaxis van het maken van een MySQL-tabel., Het enige verschil is dat u het tijdelijke trefwoord tussen create en table keywords moet opgeven. Dit is erg belangrijk omdat als je vergeet om het trefwoord toe te voegen, het creëert een reguliere MySQL tabel.
laten we nu enkele voorbeelden van de tijdelijke tabel doornemen., Ik ga de volgende use cases demonstreren:
- Maak een temp tabel en voeg gegevens in de tabel
- Maak een temp tabel met behulp van de uitvoer van het SELECT statement
- laat de temp tabel
- Maak een temp tabel met behulp van de structuur van een andere tabel
Maak een temp tabel en voeg gegevens
toe om een nieuwe temp tabel met de naam tblemee op de MySQL database te maken, Voer de volgende query uit:
voer de volgende query uit om de gegevens in de temp-tabel in te voegen.,
zodra gegevens in de temp-tabel zijn ingevoegd, voert u de volgende query uit om te controleren of gegevens zijn ingevoegd.
1Selecteer * uit tblemployee;De volgende output:
Nu, om te controleren of de omvang van de tblemployee tabel, laat ons het uitvoeren van de query uit de MySQL command-line client., id=”22c41ae375″>
1
2
|
Gebruik sakila;
Select * from tblemployee;
|
Output: zoals u kunt zien, retourneert de query heeft een fout:
Maak een tijdelijke tabel met behulp van de output van de select-instructie
Stel dat ik wil maken van een tijdelijke tabel met behulp van de output van de query., Bijvoorbeeld, Ik wil de details van de films tabel met zijn categorie invoegen in een temp tabel genaamd temp_film_details. Om dat te doen, voert u de volgende query.
zodra details zijn ingevoegd in de temp-tabel, voert u de volgende query uit om de gegevens van de temp-tabel te bekijken., id=”2a48234df2″>
1
|
Drop tijdelijke tabel tbl_film_details
|
Zoals ik al dat het op een database van een tijdelijke tabel en een InnoDB tabel kan dezelfde naam zijn, dus zorg ervoor dat u de tijdelijke trefwoord is; anders, als een tabel met dezelfde gedropt worden
Overzicht
In dit artikel, we hebben geleerd over MySQL temp tables, en de kenmerken van het., We leerden ook hoe we een temp table konden maken en laten vallen met verschillende use cases., Het maken en verwijderen van tijdelijke tabellen
MySQL Leren: Delete en Update-Instructies
MySQL Leren: De Basis van MySQL Opgeslagen Procedures
MySQL Leren: De Basis van MySQL Uitzicht
- Auteur
- Laatste Berichten
- MySQL Leren: De Basis van MySQL-Uitzicht – 3 februari 2021
- MySQL Leren: De Basis van MySQL Opgeslagen Procedures – 8 januari 2021
- T-SQL scripts bijwerken van statistieken op basis van de rij-wijziging – 24 December 2020
Leave a Reply