Maak een tijdelijke tabel in een geselecteerde verklaring zonder een aparte CREATE-tabel

Is het mogelijk om een ​​tijdelijke (alleen sessie) -tabel te maken van een geselecteerde verklaring zonder een CREATE Tabelverklaring te gebruiken en elk kolomtype op te geven? Ik weet dat de afgeleide tabellen hiervoor in staat zijn, maar die zijn super-tijdelijk (alleen verklaring) en ik wil opnieuw gebruiken.

Het zou tijd besparen als ik geen opdracht voor het maken van een CREATE hoefde op te schrijven en de kolomlijst en typelijst overeenkwam.


Antwoord 1, Autoriteit 100%

CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)

Vanaf de handleiding op http: //dev.mySQL .com / DOC / REFMAN / 5.7 / EN / CREATE-TABLE.HTML

U kunt het tijdelijke sleutelwoord gebruiken bij het maken van een tabel. Een tijdelijke tafel is alleen zichtbaar voor de huidige sessie , en is automatisch gedaald wanneer de sessie is gesloten. Dit betekent dat twee verschillende sessies dezelfde tijdelijke tabelnaam kunnen gebruiken zonder tegenstrijdig met elkaar of met een bestaande niet-tijdelijke tabel met dezelfde naam. (De bestaande tabel is verborgen totdat de tijdelijke tabel is gevallen.) Om tijdelijke tafels te maken, moet u het Privilege Tijdelijke Tafels maken.


Antwoord 2, Autoriteit 17%

Naast psparrow’s antwoord als u een index wilt toevoegen aan uw tijdelijke tabel DOEN:

CREATE TEMPORARY TABLE IF NOT EXISTS 
  temp_table ( INDEX(col_2) ) 
ENGINE=MyISAM 
AS (
  SELECT col_1, coll_2, coll_3
  FROM mytable
)

Het werkt ook met PRIMARY KEY


Antwoord 3, Autoriteit 8%

Gebruik deze syntaxis:

CREATE TEMPORARY TABLE t1 (select * from t2);

Antwoord 4, autoriteit 7%

Motor moet vóór selecteren:

CREATE TEMPORARY TABLE temp1 ENGINE=MEMORY 
as (select * from table1)

Antwoord 5, autoriteit 5%

ENGINE=MEMORYwordt niet ondersteund als de tabel BLOB/TEXTkolommen

bevat


Antwoord 6

CREATE TEMPORARY TABLE IF NOT EXISTS to_table_name AS (SELECT * FROM from_table_name)

Antwoord 7

Zoals ik het begrijp, werkt een SELECT-statement op de tijdelijke tabel als je het gebruikt in iets als phpMyAdmin, maar na die SELECT is de tijdelijke tabel verdwenen. Dit betekent dat u eerst precies moet instellen wat u ermee wilt doen, en geen resultaten ziet totdat uw ‘actie’-instructies die de gegevens wijzigen (VERWIJDEREN, UPDATE) zijn voltooid.

Other episodes