MySQL中關(guān)于臨時表的一些基本使用方法
臨時表可能是非常有用的,在某些情況下,保持臨時數(shù)據(jù)。最重要的是應(yīng)該知道的臨時表是,他們將當(dāng)前的客戶端會話終止時被刪除。
臨時表中添加MySQL版本3.23。如果您使用的是舊版本的MySQL比3.23,可以不使用臨時表,但可以使用堆表。
如前所述臨時表將只持續(xù)只要的會話是存在的。如果運行一個PHP腳本中的代碼,該臨時表將被銷毀時,會自動執(zhí)行完腳本后。如果已連接到MySQL數(shù)據(jù)庫的服務(wù)器上,通過MySQL的客戶端程序的臨時表將一直存在,直到關(guān)閉客戶端或手動破壞的表。
實例
下面是一個例子,使用臨時表在PHP腳本中,使用mysql_query()函數(shù),可以使用相同的代碼。
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)
當(dāng)發(fā)出一個SHOW TABLES命令,那么臨時表將不會被列在列表中。現(xiàn)在如果將MySQL的會話的注銷,那么會發(fā)出SELECT命令,那么會發(fā)現(xiàn)沒有在數(shù)據(jù)庫中的數(shù)據(jù)。即使臨時表也就不存在了。
刪除臨時表:
默認情況下,所有的臨時表被刪除時,MySQL的數(shù)據(jù)庫連接被終止。不過要刪除他們之前就應(yīng)該發(fā)出DROP TABLE命令。
下面的例子為刪除一個臨時表。
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; ERROR 1146: Table 'TUTORIALS.SalesSummary' doesn't exist
相關(guān)文章
一文帶你搞懂MySQL中的隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換
在mysql中,當(dāng)操作涉及不同類型的數(shù)據(jù)時,會根據(jù)一定的規(guī)則自動進行類型轉(zhuǎn)換,本文主要來和大家聊聊隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換的相關(guān)知識,需要的可以參考一下2025-04-04Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇
Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇,剛接觸php與mysql的朋友可以參考下。多寫多測試。2010-04-04MySQL BinLog如何恢復(fù)誤更新刪除數(shù)據(jù)
這篇文章主要介紹了MySQL BinLog如何恢復(fù)誤更新刪除數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06