Apakah mungkin untuk membuat temporary (sesi) tabel dari pernyataan select tanpa menggunakan pernyataan membuat tabel dan menentukan masing-masing tipe kolom? Aku tahu berasal meja yang mampu ini, tetapi mereka adalah super-sementara (pernyataan-only) dan saya ingin digunakan kembali.
Ini akan menghemat waktu jika saya tidak harus menulis membuat tabel perintah dan menjaga daftar kolom dan jenis daftar cocok.
CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)
Dari manual ditemukan di http://dev.mysql.com/doc/refman/5.7/en/create-table.html
Anda dapat menggunakan SEMENTARA kata kunci ketika membuat sebuah tabel. SEMENTARA meja terlihat hanya untuk sesi saat ini, dan turun secara otomatis ketika sesi ditutup. Ini berarti bahwa dua sesi yang berbeda dapat menggunakan tabel sementara nama tanpa bertentangan dengan satu sama lain atau dengan non-TEMPORARY tabel dengan nama yang sama. (Tabel yang ada tersembunyi sampai tabel sementara dijatuhkan.) Untuk membuat tabel sementara, anda harus MEMBUAT TABEL SEMENTARA hak istimewa.
Selain psparrow's jawaban jika anda perlu tambahkan indeks untuk sementara anda di meja anda lakukan:
CREATE TEMPORARY TABLE IF NOT EXISTS
temp_table ( INDEX(col_2) )
ENGINE=MyISAM
AS (
SELECT col_1, coll_2, coll_3
FROM mytable
)
Ia juga bekerja dengan KUNCI UTAMA
CREATE TEMPORARY TABLE IF NOT EXISTS to_table_name AS (SELECT * FROM from_table_name)