我想創建一個表,它是視圖結果的緩存。是否有一種簡單的方法可以從視圖的定義中自動定義表格,還是必須將它從show create table view
拼湊在一起?在mysql中簡單的'從視圖中創建表'語法?
29
A
回答
40
你可以從視圖中做CREATE TABLE SELECT
來構建它。這應該將視圖的結構複製爲包含所有視圖行的新表。這是這個聲明的MySQL syntax reference。
CREATE TABLE tbl_from_view AS
SELECT
col1,
col2,
col3,
col4,
col5
FROM your_view;
請注意,您希望在列選擇中非常明確。從源視圖執行SELECT *
不可取。確保你有任何計算或聚合列的別名,如COUNT(*), MAX(*), (col1 + col2)
等。
1
我還發現,在mysqldump輸出中,有一些語句會在定義視圖之前將表視圖創建爲表。我可以解析出來並將它們作爲查詢運行。
相關問題
- 1. 創建表在MySQL中選擇語法
- 2. mysql錯誤1064創建視圖語法
- 3. 語法錯誤,而在MySQL中創建物化視圖
- 4. 在MySQL中創建一個視圖表,但是從2個表
- 5. 在MySQL中創建簡單數據庫
- 6. MYSQL創建視圖,從兩個表
- 7. 在mysql中創建視圖的註釋
- 8. MySQL創建表/視圖
- 9. 如何創建從視圖中存儲數據的表 - MySQL的
- 10. 如何找到在MySQL中創建視圖的SQL語句?
- 11. 如何在mysql中創建select語句有變量的視圖
- 12. 從創建查詢視圖在MySQL - MySQL的don'a允許創建視圖
- 13. 無法從簡單值構建圖表
- 14. 在SugarCRM中創建一個簡單的自定義視圖
- 15. 試圖在jQuery中創建一個簡單的視差效果
- 16. 從MySQL中的多個表創建視圖
- 17. 從mysql中的json請求創建自定義列表視圖
- 18. 在2013年創建一個簡單的多選列表視圖
- 19. 如何在mysql中的上下文中創建視圖/表?
- 20. 在java中創建簡單對稱表
- 21. 在MySQL中創建視圖時出錯
- 22. 如何在MySQL中創建視圖?
- 23. MySQL中創建簡單的觸發問題(在MySQL小白)
- 24. 的MySQL創建表的錯誤語法
- 25. 如何在代碼中創建簡單的表格視圖控制器
- 26. 無法在Azure中創建簡易表
- 27. MySql - 創建視圖以從多個表中讀取
- 28. 創建Mysql視圖以從不同表中選擇顏色
- 29. 創建視圖中的SQL語句
- 30. MYSQL從視圖中乘法
爲什麼不是最好什麼也別'SELECT *'? – 2013-11-15 19:25:47
@MartinBurch在生產代碼中'SELECT *'通常是不宜使用的,而寧願明確表示檢索的列及其順序。在CTAS的情況下,您可能希望指定列順序。如果你肯定知道你需要所有列,他們是首選順序已,然後用'SELECT *'繼續,但最好要明確,避免surpirses(如由你的同事加入大型二進制BLOB列,瞞着您) – 2013-11-15 19:30:39