tabla - insertar registros de una base de datos a otra en sql server
PostgreSQL copia/transfiere datos de una base de datos a otra (3)
Necesito copiar datos de una tabla a otra. las dos tablas tienen casi la misma estructura, pero están en diferentes bases de datos.
Lo intenté
INSERT INTO db1.public.table2(
id,
name,
adress,
lat,
lng
)
SELECT
id,
name,
adress,
lat
lng
FROM db2.public.table2;
Cuando intento esto, obtengo una base de datos cruzada de error ... no implementada
Esta es una tarea realmente directa. Simplemente use dblink para este propósito:
INSERT INTO t(a, b, c)
SELECT a, b, c FROM dblink(''host=xxx user=xxx password=xxx dbname=xxx'', ''SELECT a, b, c FROM t'') AS x(a integer, b integer, c integer)
Si necesita recuperar datos de la base de datos externa de forma regular, sería conveniente definir una asignación de servidor y usuario. Entonces, podrías usar una declaración más corta:
dblink(''yourdbname'', ''your query'')
También hay otra manera de hacerlo. Si la extensión de dblink no está disponible, es posible copiar los datos directamente en la línea de comando, utilizando un conducto que conecta la entrada y salida estándar:
psql source_database -c ''COPY table TO stdout'' | psql target_database -c ''COPY table FROM stdin''
Pero esto va a funcionar solo en postgres 9.4 o superior
Si está en postgresql 9.0 o posterior (y probablemente 8.0 o posterior) en una sesión psql, también puede usar:
CREATE DATABASE new_database TEMPLATE original_database;
New_database será un clon de original_database incluyendo tablas, esquema de tabla, codificaciones y datos.
La principal limitación es que no se pueden conectar otras sesiones a la base de datos de origen mientras se está copiando.
Le recomendaría que verifique que el clon es correcto con selecciones juiciosas de las tablas db nuevas y antiguas. Los documentos también dicen:
Sin embargo, es importante comprender que esto (aún) no está pensado como una función de "COPIA DE BASE DE DATOS" de propósito general.