Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

555
Vistas
Postgres View, después de modificar la tabla para cambiar el nombre de la tabla, ¿View todavía lo consulta?

Usando la base de datos de Postgres. Tengo una tabla existente y varias Vistas existentes que consultan esa tabla. Llame a la tabla, 'contactos'.

Modifico la tabla, cambiando el nombre a 'contacts_backup'. Luego creé una nueva tabla con el mismo nombre que la tabla anterior solía tener 'contactos'

Ahora parece que si consulto las vistas existentes, los datos todavía se recuperan de la tabla renombrada, contactos_respaldo, y no de la nueva tabla, 'contactos'.

¿Puede ser esto? ¿Cómo puedo actualizar las vistas para consultar la nueva tabla del mismo nombre y no la copia de seguridad de contactos renombrada?

Mi nueva mesa es en realidad una mesa extranjera, pero ¿no debería ser el principio el mismo? Esperaba que las tablas existentes realizaran consultas en la nueva tabla, no en la anterior con el nombre renombrado.

¿Cuál es una forma eficiente de actualizar las vistas existentes para consultar desde la nueva tabla?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto se debe a que PostgreSQL no almacena la definición de vista como una cadena SQL, sino como un árbol de consulta analizado.

Estos árboles de consulta analizados no contienen los nombres de los objetos a los que se hace referencia, sino solo su identificador de objeto ( oid ), que no cambia cuando cambia el nombre de un objeto. Lo mismo es cierto para las columnas de la tabla. Todo esto también se aplica a las mesas extranjeras.

Cuando examina la definición de la vista, por ejemplo con pg_get_viewdef , el árbol de análisis se representa como texto, por lo que verá los nombres cambiados.

Si desea cambiar la tabla a la que se refiere una vista, la única solución es DROP la vista y CREATE nuevamente, o puede usar CREATE OR REPLACE VIEW .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda