MySQL geçici bir tabloyu nasıl oluşturur/bırakır? MySQL geçici tablolarının rolü

MySQL'de geçici tablo nasıl oluşturulur/siliner ? MySQL geçici tablolarının amacı nedir?

MySQL geçici tablo

MySQL geçici tabloları, bazı geçici verileri saklamamız gerektiğinde çok kullanışlıdır.Geçici tablolar sadece mevcut bağlantıda görünür.Bağlantı kapatıldığında, Mysql tabloyu otomatik olarak silecek ve tüm alanı serbest bırakacaktır.

MySQL 3.23 sürümünde geçici tablolar eklendi. MySQL sürümünüz 3.23'ten düşükse, MySQL geçici tablolarını kullanamazsınız. Ancak, günümüzde MySQL veritabanı hizmetlerinin bu kadar düşük sürümleri nadiren kullanılmaktadır.

MySQL'in geçici tablosu sadece mevcut bağlantı tarafından görülebilir.Eğer bir MySQL geçici tablosu oluşturmak için bir PHP betiği kullanırsanız, PHP betiği çalıştırıldığında geçici tablo otomatik olarak yok edilecektir.

Geçici bir tablo oluşturmak için MySQL veritabanı sunucusuna bağlanmak için başka bir MySQL istemci programı kullanırsanız, geçici tablo yalnızca istemci programı kapatıldığında yok edilir.Tabii ki manuel olarak da yok edebilirsiniz.

Örnek

Aşağıda MySQL geçici tablosunu kullanmanın basit bir örneği gösterilmektedir, aşağıdaki SQL kodu PHP betiğinin mysql_query() işlevine uygulanabilir.

MySQL的> CREATE TEMPORARY TABLE SalesSummary (- > PRODUCT_NAME VARCHAR (50 )NOT NULL
     - > ,TOTAL_SALES DECIMAL (12 ,2 )NOT NULL DEFAULT 0.00 - > ,avg_unit_price DECIMAL (7 ,2 )NOT NULL DEFAULT 0.00 - > ,total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); 查询OK ,0 行受影响(0.00 秒 
     
     
     

 )

的MySQL > INSERT INTO SalesSummary - > (PRODUCT_NAME ,TOTAL_SALES ,avg_unit_price ,total_units_sold )- > VALUES
     - > ('黄瓜' ,100.25 ,90 ,2 );
     
        

mysql > SELECT * FROM SalesSummary ; + -------------- + ------------- + ---------------- + --- --------------- + | product_name | total_sales | avg_unit_price | total_units_sold | + -------------- + ------------- + ---------------- + --- --------------- + | 黄瓜      | 100.25 | 90.00 | 2 | + -------------- + ------------- + ---------------- + --- --------------- + 1 行中集合(0.00 秒)



                                   

  

SHOW TABLES komutunu kullanarak tabloların listesini görüntülediğinizde, SalesSummary tablosunu göremezsiniz.

Mevcut MySQL oturumundan çıkıp daha önce oluşturulmuş geçici tablodan veri okumak için SELECT komutunu kullanırsanız, geçici tablo oturumdan çıktığınızda silindiği için tablonun veritabanında mevcut olmadığını göreceksiniz.


MySQL geçici tablosunu bırak

Varsayılan olarak, veritabanı bağlantısı kesildiğinde geçici tablolar otomatik olarak silinir. Alternatif olarak, DROP TABLE komutunu kullanarak mevcut MySQL oturumu içinde geçici tabloları manuel olarak silebilirsiniz .

Aşağıdaki, geçici bir tabloyu manuel olarak bırakma örneğidir:

mysql> CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary
    -> (product_name, total_sales, avg_unit_price, total_units_sold)
    -> VALUES
    -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
mysql>DROP TABLE SalesSummary ; 
mysql >   SELECT * FROM SalesSummary ; 
错误1146 :表'chenweiliang.SalesSummary' 不存在  

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

En gidin