alias de la base de datos en Informix
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?
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.