Quiero crear una tabla que sea un caché de resultados de una vista. ¿Existe alguna manera fácil de definir automáticamente la tabla a partir de la definición de la vista, o tendré que improvisarla desde show create table view
?Fácil sintaxis 'create table from view' en mysql?
29
A
Respuesta
40
Puede hacer CREATE TABLE SELECT
desde la vista para construirlo. Eso debería duplicar la estructura de la vista como una nueva tabla que contiene todas las filas de la vista. Aquí está el MySQL syntax reference para esta afirmación.
CREATE TABLE tbl_from_view AS
SELECT
col1,
col2,
col3,
col4,
col5
FROM your_view;
Tenga en cuenta que querrá ser muy explícito en las selecciones de sus columnas. No es aconsejable hacer un SELECT *
desde la vista de fuente. Asegúrese también de tener alias para cualquier columna calculada o agregada como COUNT(*), MAX(*), (col1 + col2)
, etc.
1
También encontré que en el resultado de mysqldump, hay declaraciones que crean la vista como una tabla, justo antes de definir la vista. Puedo analizarlos y ejecutarlos como consultas.
Cuestiones relacionadas
- 1. Error de sintaxis al ejecutar un MySQL CREATE TABLE
- 2. create table constraint in mysql
- 3. create xml from object
- 4. MySQL create view que une dos tablas
- 5. 1064 error en CREATE TABLE ... TYPE = MYISAM
- 6. mysql create view only si no existe
- 7. show create view definition
- 8. create table en postgreSQL
- 9. PRIMARIA Definición de teclas en MySQL CREATE TABLE
- 10. Mysql show create constraint?
- 11. SQL View o Table
- 12. SqlServer create table with MySql like auto_increment primary key
- 13. Linq to SQL create table
- 14. phpMyAdmin y SHOW CREATE TABLE
- 15. Create View using Linked Server db en SQL Server
- 16. Hibernate JPA create table type = Problema InnoDB
- 17. get view id from oncontextitemselected
- 18. MySQL view performance
- 19. Table view cell expandible iOS
- 20. iOS Table View Refresh Cell
- 21. C# create xml from byte array
- 22. 'CREATE VIEW' debe ser la única instrucción del lote
- 23. Generar scripts CREATE TABLE utilizando Management Studio
- 24. Cómo obtener Oracle create table statement en SQL * Plus
- 25. generar un comando sql "create table" basado en una tabla existente en mysql
- 26. Storyboard Segue From View Controller to Itself
- 27. MySQL: SELECT * FROM .... sin un campo
- 28. MySQL CREATE FUNCTION
- 29. mysql CREATE USER
- 30. Error de sintaxis "near FROM" cuando se usa UPDATE con JOIN en MySQL?
¿Por qué no es aconsejable hacer 'SELECT *'? –
@MartinBurch En general, nunca es aconsejable 'SELECT *' en el código de producción, prefiriendo ser explícito sobre las columnas recuperadas y su orden. En el caso de un CTAS, es posible que desee especificar el orden de las columnas. Si sabe con certeza que necesita todas las columnas y ya están en el orden preferido, continúe con 'SELECT *', pero es mejor ser explícito y evitar surpirses (como grandes columnas blob binarias agregadas por sus colegas, sin el conocimiento de tú) –