¿Hay un equivalente de MySQL SHOW CREATE TABLEen Postgres? es posible? Si no, ¿cuál es la siguiente mejor solución?
Necesito la declaración porque la uso para crear la tabla en un servidor remoto (sobre WCF).
                    
                        mysql
                                postgresql
                                sql
                                
                    
                    
                        vlebar
fuente
                
                fuente

Respuestas:
Puede intentar rastrear en el archivo de registro de PostgreSQL lo que realmente hace "pg_dump -t table -s". Luego puede usar el mismo método para escribir su propia función sql.
fuente
-Eopción para rastrear lo que sucede en segundo plano cuando ejecutas unpsqlcomando:-E: will describe the underlaying queries of the \ commands (cool for learning!)¡HTH!pg_dump:
o use PostgreSQL GUI Tools (pgAdmin, phpPgAdmin, etc.)
fuente
--schema-onlytiene este propósito exacto: mostrar las instrucciones SQL para crear el esquema / tabla. Puede alimentar esta salida en su programa C # de alguna manera..tar, tome elrestore.sqlarchivo del archivo. Tiene todas las declaraciones de creación.En la línea de comando (
psql) puede ejecutar:\d <table name>para enumerar todas las columnas, sus tipos e índices.fuente
Partiendo de la primera parte de la respuesta de @ CubicalSoft, puede colocar la siguiente función que debería funcionar para tablas simples (asume el esquema 'público' predeterminado y omite restricciones, índices y tipos de datos definidos por el usuario, etc.). La respuesta de @RJS es la única forma de hacerlo correctamente en este momento; ¡Esto es algo que debería integrarse en psql!
fuente
Me doy cuenta de que llego un poco tarde a esta fiesta, pero este fue el primer resultado de mi Búsqueda de Google, así que pensé que respondería con lo que se me ocurrió.
Puede llegar bastante lejos hacia una solución con esta consulta para obtener las columnas:
Y luego esta consulta para los índices más comunes:
Entonces se trata de construir las cadenas de consulta en el formato correcto.
fuente
Como se respondió en https://serverfault.com/a/875414/333439 , con el
\d <table>metacomandopsqles posible mostrar la estructura de la tabla en la base de datos. Si desea ver la consulta utilizada en el metacomando, puede usar el comandopsql -E. Como se describe en la página de manual, el-Econmutador repite las\dconsultas de metacomandos. Por lo tanto, puede iniciarpsql -E, puede ver la estructura de la tabla con\d <table>metacomando y, de acuerdo con el-Emodificador, puede ver la consulta generada para describir la estructura de la tablafuente
En pgAdmin 4 , solo encuentre la tabla en el árbol de la izquierda, por ejemplo:
Cuando se selecciona la tabla, abra la pestaña SQL a la derecha. Muestra el
CREATE TABLEpara la tabla seleccionada.fuente
La extensión ddlx de Postgres ( https://github.com/lacanoid/pgddl ) hace exactamente esto y más.
fuente