在本教程中,我們將討論mysql臨時表,並演示如何建立,使用和刪除臨時表。
mysql臨時表簡介
在mysql中,臨時表是一種特殊型別的表,它允許您儲存乙個臨時結果集,可以在單個會話中多次重用。
當使用join子句查詢需要單個select語句的資料是不可能或遇到瓶頸的時候,臨時表非常方便。 在這種情況下,我們就可以使用臨時表來儲存直接結果,並使用另乙個查詢來處理它。
mysql臨時表具有以下特殊功能:
使用create temporary table語句建立臨時表。請注意,在create和table關鍵字之間新增temporary關鍵字。
當會話結束或連線終止時,mysql會自動刪除臨時表。當您不再使用臨時表時,也可以使用drop table語句來顯式刪除臨時表。
乙個臨時表只能由建立它的客戶機訪問。不同的客戶端可以建立具有相同名稱的臨時表,而不會導致錯誤,因為只有建立臨時表的客戶端才能看到它。 但是,在同乙個會話中,兩個臨時表不能共享相同的名稱。
臨時表可以與資料庫中的普通表具有相同的名稱。 例如,如果在示例資料庫(yiibaidb)中建立乙個名為employees的臨時表,則現有的employees表將變得無法訪問。 對employees表發出的每個查詢現在都是指employees臨時表。 當刪除您臨時表時,永久employees表可以再次訪問。
注意:即使臨時表可以與永久表具有相同的名稱,但不推薦。 因為這可能會導致混亂,並可能導致意外的資料丟失。例如,如果與資料庫伺服器的連線丟失,並且您自動重新連線到伺服器,則不能區分臨時表和永久性表。 然後,你又發出乙個drop table語句,這個時候刪除的可能是永久表而不是臨時表,這種結果是不可預料的。
建立mysql臨時表
要建立臨時表,只需要將temporary關鍵字新增到create table語句的中間。
例如,以下語句建立乙個臨時表,按照收入儲存前10名客戶:
create temporary table top10customers
select p.customernumber,
c.customername,
format(sum(p.amount),2) total
from payments p
inner join customers c on c.customernumber = p.customernumber
group by p.customernumber
order by total desc
limit 10;
現在,可以從top10customers臨時表中查詢資料,例如:
select * from top10customers;
刪除mysql臨時表
您可以使用drop table語句來刪除臨時表,但最好新增temporary關鍵字如下:
drop temporary table table_name;
drop temporary table語句僅刪除臨時表,而不是永久表。 當將臨時表命名為永久表的名稱相同時,它可以避免刪除永久表的錯誤
例如,要刪除top10customers臨時表,請使用以下語句:
drop temporary table top10customers;
請注意,如果嘗試使用drop temporary table語句刪除永久表,則會收到一條錯誤訊息,指出您嘗試刪除的表是未知的。
如果開發使用連線池或持久連線的應用程式,則不能保證臨時表在應用程式終止時自動刪除。
因為應用程式使用的資料庫連線可能仍然開啟並放置在其他客戶端使用的連線池中。 因此,當不再使用它們時馬上刪除臨時表,這是乙個很好的做法。
在本教程中,您已經了解了mysql臨時表以及如何管理臨時表,例如建立和刪除新臨時表。
¥ 我要打賞
糾錯/補充
收藏加qq群啦,易百教程官方技術學習群
注意:建議每個人選自己的技術方向**,同乙個qq最多限加 3 個群。
mysql臨時表更新 MySql 臨時表
今天在專案中遇到乙個,當mysql的in語句中資料量很大時,建立乙個臨時表的例子。於是樓主整理了一下關於臨時表的知識,與大家分享一下 首先,臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間。因此在不同的連線中可以建立同名的臨時表,並且操作屬於本連線的臨時表。建立臨時表 cr...
mysql 臨時表 限制 Mysql臨時表
當你建立臨時表的時候,你可以使用temporary關鍵字。如 create temporary table tmp table name varchar 10 not null,passwd char 6 not null 或create temporary table if not exists ...
mysql怎麼建立臨時表 mysql如何建立臨時表
mysql 利用 temporary 關鍵字就可以建立出乙個臨時表。建立的這張表會在與伺服器的會話終止時自動消失。語法 create temporary table tbl name.規則 每個會話只能看到自己建立的臨時表,不同的會話可以建立相同表名稱的臨時表。臨時表的表名可以和永久表的名字相同。好...