Tengo un esquema de base de datos llamado: nyummy
y una tabla llamada cimory
:
create table nyummy.cimory (
id numeric(10,0) not null,
name character varying(60) not null,
city character varying(50) not null,
CONSTRAINT cimory_pkey PRIMARY KEY (id)
);
Quiero exportar los cimory
datos de la tabla como insertar un archivo de script SQL. Sin embargo, solo quiero exportar registros / datos donde la ciudad es igual a 'tokio' (supongamos que los datos de la ciudad están en minúsculas).
¿Cómo hacerlo?
No importa si la solución está en herramientas GUI gratuitas o en la línea de comandos (aunque la solución de herramientas GUI es mejor). Intenté pgAdmin III, pero no puedo encontrar una opción para hacerlo.
Respuestas:
Cree una tabla con el conjunto que desea exportar y luego use la utilidad de línea de comandos pg_dump para exportar a un archivo:
--column-inserts
volcará como comandos de inserción con nombres de columna.--data-only
No volcar el esquema.Como se comenta a continuación, la creación de una vista en lugar de una tabla evitará la creación de la tabla siempre que sea necesaria una nueva exportación.
fuente
create view export_view...
, ya que la vista se mantendría actualizada con los cambios en la tabla base. Los documentos dicen--table=table: Dump only tables (or **views**...
que tenía esperanzas de que esto funcionara, pero lamentablemente arrojar una vista no arroja datos. : Ppg_dump --table=my_schema.my_view --data-only --inserts my_db > data.sql
versión 9.5.3, y micreate
declaración fue la misma que la tuya, exceptocreate view...
. Todo lo que obtengo en la salida son los comentarios ySET
declaraciones habituales de pg_dump . No estoy seguro de dónde me estoy equivocando.Para un uso de exportación solo de datos
COPY
.Obtiene un archivo con una fila de tabla por línea como texto sin formato (no
INSERT
comandos), es más pequeño y más rápido:Importe lo mismo a otra tabla de la misma estructura en cualquier lugar con:
COPY
escribe y lee archivos locales en el servidor , a diferencia de los programas cliente comopg_dump
opsql
que leen y escriben archivos locales en el cliente . Si ambos se ejecutan en la misma máquina, no importa mucho, pero lo hace para conexiones remotas.También existe el
\copy
comando de psql que:fuente
insert
comandos, ¿no?STDIN
ySTDOUT
se puede usar en lugar de la ruta del archivo, útil para pequeñas exportaciones de datos.--column-inserts
bandera, pg_dump usa unCOPY
from STDIN para cada una de las tablas en el código SQL que genera.Esta es una manera fácil y rápida de exportar una tabla a un script con pgAdmin manualmente sin instalaciones adicionales :
Este método también funciona con la técnica de hacer una export_table como se demuestra en la respuesta de @Clodoaldo Neto.
fuente
SQL Workbench tiene tal característica.
Después de ejecutar una consulta, haga clic derecho en los resultados de la consulta y elija "Copiar datos como SQL> Insertar SQL"
fuente
Para mi caso de uso pude simplemente conectar a grep.
fuente
Traté de escribir un procedimiento haciendo eso, basado en los códigos @PhilHibbs, de una manera diferente. Por favor, eche un vistazo y prueba.
Y entonces :
probado en mi postgres 9.1, con una tabla con tipos de datos de campo mixto (texto, doble, int, marca de tiempo sin zona horaria, etc.).
Es por eso que se necesita el tipo CAST en TEXT. Mi prueba se ejecutó correctamente durante aproximadamente 9 millones de líneas, parece que falla justo antes de 18 minutos de ejecución.
ps: encontré un equivalente para mysql en la WEB.
fuente
Puede hacer una vista de la tabla con registros específicos y luego volcar el archivo sql
fuente
Acabo de hacer un procedimiento rápido para hacer esto. Solo funciona para una sola fila, por lo que creo una vista temporal que solo selecciona la fila que quiero, y luego reemplazo pg_temp.temp_view con la tabla real en la que quiero insertar.
Invocado así:
No he probado esto contra ataques de inyección, avíseme si la llamada quote_literal no es suficiente para eso.
Además, solo funciona para columnas que simplemente se pueden convertir a :: texto y viceversa.
También esto es para Greenplum, pero no puedo pensar en una razón por la que no funcionaría en Postgres, CMIIW.
fuente
¿Has intentado en pgadmin ejecutar consulta con la
" EXECUTE QUERY WRITE RESULT TO FILE "
opciónsolo exporta los datos, de lo contrario intente como
-t opción utilizada para ==> Volcar solo tablas (o vistas o secuencias) que coinciden con la tabla, consulte
fuente
create view
declaración