2013-05-11 25 views
1

我想創建一些元數據來擴展mysql的功能,但我不能在數據庫INFORMATION_SCHEMA中創建表。我認爲我可以創建另一個數據庫並在其中存儲元數據,但我需要從表中的一些外鍵到INFORMATION_SCHEMA數據庫中的某些表。儘管如此,我嘗試創建它們時卻遇到了錯誤。然後我想我可以創建一個觸發器來獲取變化的通知,但由於觸發器與表關聯,並且我無法更改該數據庫,所以我也無法創建觸發器。如何更改INFORMATION_SCHEMA或向其添加觸發器或外鍵?

具體而言,我有一些表引用information_schema.schemata(schema_name)information_schema.schemata(columns)和其他一些。我想擁有這些外鍵,因此我可以使用ON UPDATE CASCADE ON DELETE CASCADE,否則我的表中會有一些行引用我的表,並且我不能允許這樣做。

我使用mariaDB 5.5.30它使用MySql 5.3。

+0

我不知道是否在視圖物化視圖會工作。比你可以創建物化視圖的索引/鍵... – xQbert 2013-05-11 22:13:39

回答

2

INFORMATION_SCHEMA表格實際上是其內容由MySQL服務器自動維護的視圖。

The manual gives more information

INFORMATION_SCHEMA裏面有幾個只讀表。他們 實際上是視圖,而不是基表,所以沒有與它們關聯的文件 ,並且你不能在它們上設置觸發器。此外,沒有該名稱的數據庫目錄 。

雖然你可以選擇INFORMATION_SCHEMA作爲默認數據庫 與USE語句,你只能讀取表的內容,而不是 執行INSERT,UPDATE或DELETE這些操作。

+0

感謝您的信息。你知道當這些觀點發生變化時我該如何「觀察」? – 2013-05-11 22:55:36

+0

我想你需要添加觸發器到你想要監視的真實表,因爲INFORMATION_SCHEMA表不接受觸發器。 – Jocelyn 2013-05-11 22:57:06

1

他們不是真正的意見,但臨時表,這就是爲什麼你沒有看到文件夾。 顯示創建視圖視圖; ERROR 1347(HY000):'information_schema./tmp/#sql_2ac_0' 不是VIEW

相關問題