从视图创建表?

时间:2011-11-22 12:20:09

标签: mysql sql database

在MySQL可能吗?在Oracle中,我可以做到:

SELECT *
INTO table
FROM view

在MySQL中,这不起作用:

INSERT INTO table FROM view;

请记住,该表不存在。我希望它是基于视图的输出创建的。

2 个答案:

答案 0 :(得分:5)

在MySQL中,您可以创建一个新表LIKE另一个表,但这不适用于视图。

您还可以创建一个new table that contains everything from a select,它可以从视图,选择,连接和其他所有内容中运行。请注意,新表将保留select中的所有数据,因此您必须非常棘手。像这样。

create table table_from_view select * from view_name where 1 = 0;

如果需要,您必须在之后添加索引。

答案 1 :(得分:4)

您可以在表名后添加SELECT:

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

此处提供了更多信息:http://dev.mysql.com/doc/refman/5.1/en/create-table-select.html