【问题标题】:is it possible to create a view from another view?是否可以从另一个视图创建视图?
【发布时间】:2013-04-03 03:22:57
【问题描述】:

这可能是一个愚蠢的问题,但它是直截了当的。

是否可以从现有视图创建视图?

假设我有表 A。我从 tableA 创建 vwtableA,现在我想从 vwtableA 创建 vvVwtableA。

在伪代码中会是这样的:

create view vwA as select * from tableA;
create view vwvwA as select * from vwA;

这可能吗? 我正在尝试这样的事情,执行语句时没有 MySQL 错误,但我无法浏览第二个视图... MySQL Workbench 一直在加载,我不知道这是否是原因。

我的 tableA 大约有 100 000 条记录,vwA 大约有 50 000 条记录,vwvwA 也应该有大约 50 000 条记录。

【问题讨论】:

  • SHOW PROCESSLIST 显示什么?当您的工作台应用程序等待时,可能有一些粗暴的查询正在运行。
  • 我得到了这个'1', 'root', 'localhost:50323', 'tese', 'Query', '0', NULL, 'SHOW PROCESSLIST' '2', 'root', 'localhost:50326', 'tese', 'Sleep', '1', '', NULL ,我猜这看起来很正常......
  • 你用什么软件做mysql的?
  • 您是否尝试过其他前端工具,看看是不是 Workbench 有问题?
  • 现在我明白了,当我停止 select * from vwVwtablea limit 0,10 '1', 'root', 'localhost:50323', 'test', 'Query', '0', NULL, 'SHOW PROCESSLIST' '2', 'root', 'localhost:50326', 'test', 'Sleep', '23', '', NULL '3', 'root', 'localhost:51142', 'test', 'Query', '29', 'Copying to tmp table', 'SELECT 1 FROM test.vwnumrows2` LIMIT 100000' ` vwnumrows2 在这种情况下是 vwVwtablea

标签: mysql views mysql-workbench


【解决方案1】:

是的,这是可能的。见 MySQL documentation

select_statement 是一个提供视图定义的 SELECT 语句。 (当您从视图中选择时,您实际上使用 SELECT 语句进行选择。) select_statement 可以从基表或其他视图

中进行选择

【讨论】:

  • 谢谢,那么它必须是工作台或视图本身有问题才能执行简单的select * from vwVwtablea limit 0,10,因为它一直在运行/加载/处理并且不生成任何内容
  • 可能。在责怪 Workbench 之前先尝试终端/命令行以确保。
【解决方案2】:

只需复制您的第一个视图 (vwA) 并创建一个新视图 (vwvwA) 。这种方式很简单。 ;-)

【讨论】:

  • 我无法复制,因为它们不会存储完全相同的数据
猜你喜欢
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
相关资源
最近更新 更多