En PSQL, ¿hay una buena manera de encontrar todas las tablas que heredan de otra tabla? Idealmente, podría obtener los datos de una consulta SQL, pero en este punto, estaría contento con cualquier método confiable.Cómo encontrar tablas secundarias que heredan de otra tabla en PSQL
17
A
Respuesta
30
¿Qué quiere decir "de sql query"? ¿Significa SELECT
ing desde pg_inherits
no es lo suficientemente bueno para usted?
SELECT pg_inherits.*, c.relname AS child, p.relname AS parent
FROM
pg_inherits JOIN pg_class AS c ON (inhrelid=c.oid)
JOIN pg_class as p ON (inhparent=p.oid);
2
Si también necesita los nombres de esquema:
SELECT cn.nspname AS schema_child, c.relname AS child, pn.nspname AS schema_parent, p.relname AS parent
FROM pg_inherits
JOIN pg_class AS c ON (inhrelid=c.oid)
JOIN pg_class as p ON (inhparent=p.oid)
JOIN pg_namespace pn ON pn.oid = p.relnamespace
JOIN pg_namespace cn ON cn.oid = c.relnamespace
WHERE p.relname = 'your table name' and pn.nspname = 'your schema name'
1
Si usted quiere encontrar todos los niños de a partir de la partición principal se puede ejecutar simplemente se siente:
SELECT relname
FROM pg_class,pg_inherits
WHERE pg_class.oid=pg_inherits.inhrelid
AND inhparent
IN (SELECT oid FROM pg_class WHERE relname='your_master_partition')
ORDER BY relname;
Cuestiones relacionadas
- 1. Psql enumera todas las tablas
- 2. Entity Framework: ¿cómo unir tablas en columnas de clave no primaria en tablas secundarias?
- 3. ¿Cómo obtener la lista de tablas secundarias para una tabla de base de datos?
- 4. ¿Cómo puedo unir tablas en columnas de clave no primaria en tablas secundarias?
- 5. Salida de xtable dividida en las tablas secundarias
- 6. ¿Cómo obtener todas las tablas que tienen FK en otra tabla?
- 7. Obtener todas las filas en la tabla "actual", y no desde las tablas secundarias
- 8. Encontrar todas las tablas relacionadas en una tabla determinada
- 9. Cómo encontrar todos los tipos en un ensamblado que heredan de un tipo específico C#
- 10. Comprobar si la tabla hereda de otra tabla en PostgreSQL
- 11. ¿Cómo organizo clases de C# que heredan unas de otras, pero también tienen propiedades que heredan unas de otras?
- 12. tablas de unión MySQL donde el nombre de la tabla es un campo de otra tabla
- 13. SQL Actualizar una tabla según las condiciones en otra tabla
- 14. ¿Cómo decirle a NHibernate que un disparador actualiza otra tabla?
- 15. Cómo borrar carriles tablas tabla
- 16. Oracle SQL - Usando combinaciones para encontrar valores en una tabla, y no en otra
- 17. ¿Cómo escribo una consulta de MySQL que leerá datos de una tabla y escribirá en otra?
- 18. ¿Cómo encontrar tablas heredadas de forma programática en PostgreSQL?
- 19. Cómo encontrar "agujeros" en una tabla
- 20. desactivar las NOTIFICACIONES en la salida psql
- 21. ¿Cómo encontrar tablas con clave externa en una tabla en Oracle?
- 22. ¿Por qué las vistas secundarias heredan el valor alfa del diseño principal?
- 23. ¿Cómo seleccionar todos los registros de una tabla que no existen en otra tabla?
- 24. DB2: ¿Cómo puedo encontrar si una columna está presente en una tabla o lista de tablas?
- 25. PostgreSQL: insertar desde otra tabla
- 26. Consola psql que no acepta la localización
- 27. Postgresql - cómo obtener entradas en una tabla que no tienen una coincidencia en otra tabla
- 28. ¿Cómo obtengo todas las filas en una tabla que no están en otra en MS Access?
- 29. Consulta SQL: enumere todos los elementos en una tabla que no aparecen en otra tabla
- 30. Cómo encontrar tablas no utilizadas en SQL Server
Cuando escribí " consulta SQL ", quise decir algo que podría pasar a PSQL en la línea de comandos, en lugar de algo como \ d que se debe ejecutar de forma interactiva. Entonces, seleccionar de pg_inherits es un buen comienzo. ¿Dónde puedo encontrar una tabla con los nombres de las tablas y sus oids? – Watusimoto
¡Das is perfekt! Vielen dank! – Watusimoto
Watusimoto - \ d se puede pasar a psql en la línea de comandos también :) –