轻松“从视图创建表” mysql 中的语法?

发布于 2025-01-04 19:14:06 字数 99 浏览 0 评论 0原文

我想创建一个表来缓存视图的结果。有没有一种简单的方法可以根据视图的定义自动定义表,或者我必须从 show create table view 将其拼凑在一起?

I want to create a table that's a cache of results from a view. Is there an easy way to automatically define the table from the view's definition, or will I have to cobble it together from show create table view?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

も让我眼熟你 2025-01-11 19:14:07

我还发现,在 mysqldump 输出中,有一些语句将视图创建为表,就在它定义视图之前。我可以解析它们并将它们作为查询运行。

I also found that in the mysqldump output, there are statements that create the view as a table, just before it defines the view. I can parse those out and run them as queries.

方圜几里 2025-01-11 19:14:06

您可以从视图中执行CREATE TABLE SELECT来构建它。这应该将视图的结构复制为包含视图的所有行的新表。这是此语句的 MySQL 语法参考

CREATE TABLE tbl_from_view AS    
  SELECT
    col1,
    col2,
    col3,
    col4,
    col5
  FROM your_view;

请注意,您需要非常明确地选择列。不建议从源视图执行SELECT *。还要确保任何计算列或聚合列都有别名,例如 COUNT(*)、MAX(*)、(col1 + col2) 等。

You can do CREATE TABLE SELECT from the view to build it. That should duplicate the view's structure as a new table containing all the view's rows. Here's the MySQL syntax reference for this statement.

CREATE TABLE tbl_from_view AS    
  SELECT
    col1,
    col2,
    col3,
    col4,
    col5
  FROM your_view;

Note that you will want to be very explicit in your column selections. It isn't advisable to do a SELECT * from the source view. Make sure as well that you have aliases for any calculated or aggregate columns like COUNT(*), MAX(*), (col1 + col2), etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文