¿Hay un equivalente de MySQL SHOW CREATE TABLE
en 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
-E
opción para rastrear lo que sucede en segundo plano cuando ejecutas unpsql
comando:-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-only
tiene 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.sql
archivo 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>
metacomandopsql
es 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-E
conmutador repite las\d
consultas de metacomandos. Por lo tanto, puede iniciarpsql -E
, puede ver la estructura de la tabla con\d <table>
metacomando y, de acuerdo con el-E
modificador, 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 TABLE
para la tabla seleccionada.fuente
La extensión ddlx de Postgres ( https://github.com/lacanoid/pgddl ) hace exactamente esto y más.
fuente