MySQL中的臨時(shí)視圖是指在SELECT語句中定義并使用的視圖。它不像永久視圖那樣需要被預(yù)定義和存儲(chǔ)在數(shù)據(jù)庫中,而僅僅在執(zhí)行查詢時(shí)產(chǎn)生。
MySQL支持兩種類型的臨時(shí)視圖:局部臨時(shí)視圖和全局臨時(shí)視圖。
局部臨時(shí)視圖的作用范圍是在定義它的查詢內(nèi)部。它的生命周期最長為當(dāng)前客戶端會(huì)話,一旦客戶端會(huì)話結(jié)束,局部臨時(shí)視圖也將被銷毀。它使用的關(guān)鍵字是CREATE TEMPORARY VIEW。
CREATE TEMPORARY VIEW view_name AS SELECT ... FROM ... WHERE ...;
全局臨時(shí)視圖則可以被多個(gè)客戶端會(huì)話所共享,在創(chuàng)建視圖的客戶端會(huì)話結(jié)束后,全局臨時(shí)視圖不會(huì)被自動(dòng)銷毀,只有在使用DROP TEMPORARY TABLE或退出數(shù)據(jù)庫時(shí)才會(huì)被刪除。它使用的關(guān)鍵字是CREATE TEMPORARY TABLE。
CREATE TEMPORARY TABLE view_name AS SELECT ... FROM ... WHERE ...;
無論是局部臨時(shí)視圖還是全局臨時(shí)視圖,它們的定義和使用方式與永久視圖無異。
在使用臨時(shí)視圖時(shí)需要注意的是,MySQL不支持使用臨時(shí)視圖來創(chuàng)建永久視圖或修改現(xiàn)有的永久視圖。