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
?
The basic syntax for creating a view in MySQL is as follows: CREATE VIEW [db_name.] view_name [(column_list)] AS select-statement; [db_name.] is the name of the database where your view will be created; if not specified, the view will be created in the current database.
in SQL Server Management Studio, there is no method to create a table from a view in a database. The only possible way is to use the SELECT INTO statement in a query editor in the management studio.
The general syntax for creating a table in MySQL is: CREATE TABLE [IF NOT EXISTS] table_name( column_definition1, column_definition2, ........, table_constraints ); Note: [IF NOT EXISTS] verifies if there is an identical table in the database. The query will not be executed if an identical table already exists.
The syntax for the CREATE VIEW statement in SQL is: CREATE VIEW view_name AS SELECT columns FROM tables [WHERE conditions]; view_name. The name of the SQL VIEW that you wish to create.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With