5

MySQL Workbench で作成したデータベース モデルで、ビューを定義しました。ダイアグラム (Menu -> Database -> Forward EngineerまたはCtrl + G) から SQL を生成すると、ビュー用に次のコードが作成されます。

-- -----------------------------------------------------
-- 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 SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

このプレースホルダ テーブルが作成される理由

どうも

4

1 に答える 1

5

循環参照を解決するために、プレースホルダーが (WB だけでなく、mysqldump などによっても) 作成されます。ビュー定義は、ビューを必要とするテーブル (または最終的に初期ビューを必要とするビューを必要とするテーブルを必要とするテーブル) を参照できます。これは、ダミーのビューを定義し (ビューはほとんどの面でテーブルに似ているため、一時的にテーブルとして) 定義し、他のすべてのオブジェクトが使用可能になったときにそれらを再定義しない限り、自動的に検出または解決することはできません。

于 2013-03-15T08:42:50.363 に答える