Pregunta

En Informix que se puede ejecutar SQL que utilice otra base de datos:

INSERT INTO other_db:mytable ...

Me gustaría "unir" dos bases de datos, pero me gustaría hacerlo "paso a paso".

Al principio quiero mover todos los datos de base de datos principal a other_db y hacer alias que other_db = main_database. De esta manera tendré tiempo para eliminar "other_db:". de todas las declaraciones

¿Cómo puedo configurar alias de base de datos?

¿Fue útil?

Solución

No estoy al tanto de cualquier método para crear un alias para toda la base de datos.

Sin embargo, puede crear sinónimos través de bases de datos, en la forma:

DATABASE old_db;
CREATE SYNONYM table_name FOR new_db:table_name;

Si crea un alias para cada tabla como se le trasladaba, debe ser capaz de conseguir el mismo efecto. Una vez que todas las tablas han sido reubicadas, puede quitar todas las referencias a old_db.

Se pueden realizar consultas systables para identificar las tablas reales en old_db, es decir:

DATABASE old_db;
SELECT tabname, nrows
  FROM systables
  WHERE tabtype = "T"
    AND tabid > 99 -- exclude internal tables

La fila de recuento, por supuesto, dependerá de UPDATE STATISTICS razonablemente actualizadas.

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top