He creado una tabla en postgreSQL. Quiero ver la instrucción SQL utilizada para crear la tabla, pero no puedo entenderla.
¿Cómo obtengo la create table
declaración SQL para una tabla existente en Postgres a través de la línea de comandos o la declaración SQL?
postgresql
Raja
fuente
fuente
pg_dump mydb -t mytable --schema-only
.aschema
con el nombre de esquema real de la tabla que desea volcar. Reemplaceatable
con el nombre real de la tabla que desea volcar.pg_dump mydb -t '"TableName"' --schema-only
contrario, pg_dump no reconocerá el nombre de la tabla.Mi solución es iniciar sesión en el postgres db usando psql con la opción -E de la siguiente manera:
En psql, ejecute los siguientes comandos para ver el sql que usa Postgres para generar
la declaración de la tabla de descripción:
Basado en el sql que se hizo eco después de ejecutar estos comandos de descripción, pude reunir
la siguiente función plpgsql:
Aquí está el uso de la función:
Y aquí está la declaración de caída si no desea que esta función persista permanentemente:
fuente
NULL
me regresa ... ¿Y cómo se maneja el esquema? ¿Debería devolver sentencias CREATE para tablas con el nombre especificado de todos los esquemas?Genere la instrucción de creación de tabla para una tabla en postgresql desde la línea de comandos de Linux:
Esta declaración genera la tabla para crear una declaración sql para mí:
Explicación:
pg_dump nos ayuda a obtener información sobre la base de datos en sí.
-U
significa nombre de usuario. Mi usuario de pgadmin no tiene una contraseña establecida, por lo que no tengo que poner una contraseña. La-t
opción significa especificar para una tabla.--schema-only
significa imprimir solo datos sobre la tabla, y no los datos de la tabla. Aquí está el comando exacto que uso:fuente
Si desea encontrar la declaración de creación para una tabla sin usar pg_dump, esta consulta podría funcionar para usted (cambie 'nombre de tabla' con el nombre de su tabla):
cuando se llama directamente desde psql, es util hacer lo siguiente:
Además, la función generate_create_table_statement en este hilo funciona muy bien.
fuente
pg_dump
. útil de todosDean Toader ¡ Simplemente excelente! Modificaría un poco su código, para mostrar todas las restricciones en la tabla y hacer posible el uso de la máscara regexp en el nombre de la tabla.
Ahora puede, por ejemplo, hacer la siguiente consulta
que resulta así:
para cada tabla de usuario.
fuente
El método más fácil que se me ocurre es instalar pgAdmin 3 (que se encuentra aquí ) y usarlo para ver su base de datos. Generará automáticamente una consulta que creará la tabla en cuestión.
fuente
Si desea hacer esto para varias tablas a la vez, debe usar el modificador -t varias veces (me tomó un tiempo descubrir por qué la lista separada por comas no funcionaba). Además, puede ser útil para enviar resultados a un archivo externo o canalización a un servidor postgres en otra máquina
fuente
Aún más modificación basada en la respuesta de @vkkeeper. Se agregó la posibilidad de consultar la tabla desde el esquema específico.
fuente
Aquí es una versión mejorada de bits shekwi 's consulta .
Genera la restricción de clave principal y puede manejar tablas temporales:
Use el
table_name
parámetro para especificar el nombre de la tabla.fuente
fuente
Esta es la variación que funciona para mí:
pg_dump -U user_viktor -h localhost unit_test_database -t floorplanpreferences_table --schema-only
Además, si está utilizando esquemas, por supuesto también deberá especificar eso:
pg_dump -U user_viktor -h localhost unit_test_database -t "949766e0-e81e-11e3-b325-1cc1de32fcb6".floorplanpreferences_table --schema-only
Obtendrá una salida que puede usar para crear la tabla nuevamente, solo ejecute esa salida en psql.
fuente
Una solución simple, en SQL único y puro. Entiendes la idea, puedes extenderla a más atributos que te gustaría mostrar.
Salida:
fuente
Aquí hay una declaración única que generará el DDL para una sola tabla en un esquema específico, incluidas las restricciones.
fuente
Al igual que las otras respuestas mencionadas, no hay una función integrada que haga esto.
Aquí hay una función que intenta obtener toda la información que se necesitaría para replicar la tabla, o para comparar ddl desplegado y verificado.
Esta función genera:
ejemplo
produce
fuente
En la base de datos pgadminIII >> esquemas >> tablas >> haga clic con el botón derecho en 'Su tabla' >> scripts >> 'Seleccione cualquiera (Crear, Insertar, Actualizar, Eliminar ...)'
fuente
Aquí hay una consulta con algunas ediciones,
fuente