2013-03-14 65 views
3

在一个数据库模型中,我在MySQL Workbench中创建了一个视图。现在当我从diagramm(Menu -> Database -> Forward EngineerCtrl + G)生成的SQL中,为我的视图中创建此代码:为什么MySQL Workbench为视图生成占位符表?

-- ----------------------------------------------------- 
-- Placeholder table for view `myview` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `myview` (...table columns...); 
SHOW WARNINGS; 

-- ----------------------------------------------------- 
-- View `myview` 
-- ----------------------------------------------------- 
DROP VIEW IF EXISTS `myview` ; 
SHOW WARNINGS; 
DROP TABLE IF EXISTS `myview`; 
SHOW WARNINGS; 
DELIMITER $$ 
CREATE OR REPLACE VIEW `myview` AS 

...view definition... 

$$ 
DELIMITER ; 

; 
SHOW WARNINGS; 


SET [email protected]_SQL_MODE; 
SET [email protected]_FOREIGN_KEY_CHECKS; 
SET [email protected]_UNIQUE_CHECKS; 

为什么这个占位符表创建?

THX

回答

3

占位符被创建(不仅由WB而且例如通过mysqldump的)来解决循环引用。一个视图定义可以引用一个需要视图的表(或者一个表,这个表需要一个表来请求一个最终需要初始视图的视图)。除非通过定义虚拟视图(暂时作为表格,因为视图在大多数方面(如表格)),然后在所有其他对象可用时对其重新定义,否则不能自动检测或解决此问题。

相关问题