Ayrı bir CREATE TABLE olmadan SELECT deyiminde geçici bir tablo oluşturma

Bir create table deyimi kullanmadan ve her sütun türünü belirtmeden bir select deyiminden geçici (yalnızca oturum) bir tablo oluşturmak mümkün müdür? Türetilmiş tabloların bunu yapabildiğini biliyorum, ancak bunlar süper geçici (yalnızca deyim) ve yeniden kullanmak istiyorum.

Bir tablo oluştur komutu yazmak ve sütun listesi ile tür listesini eşleştirmek zorunda kalmasaydım zamandan tasarruf ederdim.

Çözüm
CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)

http://dev.mysql.com/doc/refman/5.7/en/create-table.html adresinde bulunan kılavuzdan

Bir tablo oluştururken TEMPORARY anahtar sözcüğünü kullanabilirsiniz. GEÇİCİ bir tablo sadece geçerli oturum tarafından görülebilir ve oturum kapatıldığında otomatik olarak silinir. Bu, iki farklı oturumun aynı geçici tablo adını birbiriyle veya aynı addaki mevcut bir GEÇİCİ olmayan tabloyla çakışmadan kullanabileceği anlamına gelir. (Geçici tablo bırakılana kadar mevcut tablo gizlenir.) Geçici tablolar oluşturmak için CREATE TEMPORARY TABLES ayrıcalığına sahip olmanız gerekir.

Yorumlar (12)

Bu sözdizimini kullanın:

CREATE TEMPORARY TABLE t1 (select * from t2);
Yorumlar (1)

Motor seçimden önce olmalıdır:

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