Du kunne bruge CREATE TEMPORARY TABLE temp_table LIKE regular_table
, men det vil skabe alle indekserne, så når du gør INSERT INTO temp_table SELECT * FROM regular_table
, vil indekserne blive genopbygget - hvilket kan blive langvarigt.
Eller du kan oprette tabellen og tilføje indekset bagefter:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
men indekset vil igen blive opdateret ved hver indsættelse.
Den mest effektive måde ville nok være at oprette temp-tabellen, indsætte alle, bygge indeks bagefter:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
ALTER TABLE temp_table DISABLE KEYS
INSERT INTO temp_table SELECT * FROM regular_table
ALTER TABLE temp_table ENABLE KEYS
Igen bliver du nødt til at vente på, at indekset opbygges, bortset fra at det vil ske i én del med den sidste ALTER-sætning.