26
Necesito una consulta para ver si una tabla ya tiene índices.Consulta para verificar el índice en una tabla
Necesito una consulta para ver si una tabla ya tiene índices.Consulta para verificar el índice en una tabla
en Postgres, es sólo \ d + mesa, en MySQL es la descripción
Respuesta
Si estás usando MySQL puede ejecutar
SHOW KEYS FROM table
oSHOW INDEXES FROM table
Fuente
2009-11-25 23:38:58 nickf
lo siento por no contarle al medio ambiente. Su SQL Server 2008 – sine
En Oracle:
Determine todos los índices de la tabla:
determina las columnas y columnas de índices Indice:
Referencias:
Fuente
2009-11-25 23:39:41 FerranB
La mayoría de apoyo RDBMS moderna del
INFORMATION_SCHEMA
esquema. Si el tuyo lo admite, entonces quieresINFORMATION_SCHEMA.TABLE_CONSTRAINTS
oINFORMATION_SCHEMA.KEY_COLUMN_USAGE
, o tal vez ambos.Para ver si el suyo lo apoya es tan simple como ejecutar
select count(*) from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
EDIT: SQL Server no tienen
INFORMATION_SCHEMA
, y es más fácil de usar que sus tablas específicas del proveedor, por lo que sólo tiene que ir con él.Fuente
2009-11-26 00:04:16 Donnie
Como su nombre indica, la vista estándar de ANSI, 'INFORMATION_SCHEMA.TABLE_CONSTRAINTS' solo muestra restricciones. Mientras que algunas restricciones son índices, no todos los índices son restricciones. Esta vista no mostrará índices regulares: solo muestra 'CONSTRAINT_TYPE's' UNIQUE', 'PRIMARY KEY',' FOREIGN KEY' o 'CHECK'. Consulte [la sección correspondiente de "SQL-99 Complete, Really"] (https://mariadb.com/kb/en/sql-99-complete-really/16-sql-catalogs/the-information-schema/ information_schema-views/information_schematable_constraints /) –
En SQL Server, aparecerá una lista de todos los índices de una tabla especificada:
Esta consulta una lista de todas las tablas que tienen un índice:
Y esta es una interesante FAQ MSDN sobre un tema relacionado:
Querying the SQL Server System Catalog FAQ
Fuente
2009-11-26 12:12:47 gkrogers
¿Cómo veo en qué columnas se han colocado estos índices? –
Debe tenerse en cuenta que la consulta principal fallará si la tabla tiene más de un índice, Reemplace 'object_id = (select' con' object_id IN (seleccione' si necesita ver la información sobre los índices, o simplemente desea que la consulta se complete sin error. – Tor
Si sólo necesita las columnas indexadas E XEC sp_helpindex 'TABLE_NAME'
Fuente
2015-08-04 13:00:59 Salim
Esto es lo que he usado para TSQL, que se hizo cargo del problema de que mi nombre de la tabla podría contener el nombre de esquema y, posiblemente, el nombre de base de datos:
El caso de uso para esto es que quería la lista de índices para una tabla con nombre para poder escribir un procedimiento que comprimiera dinámicamente todos los índices en una tabla.
Fuente
2016-04-19 01:43:52
En primer lugar, comprobar su identificador de tabla (también conocido como object_id)
entonces se puede obtener los nombres de la columna.Por ejemplo suponiendo que obtuvo de consulta anterior el número 4 como object_id
Fuente
2017-01-04 17:46:32
cheque esto también Esto da una visión general de las limitaciones asociadas a través de una base de datos. Incluya también la facilitación donde la condición con el nombre de la tabla de interés proporciona información más rápidamente.
select a.TABLE_CATALOG as DB_name,a.TABLE_SCHEMA as tbl_schema, a.TABLE_NAME as tbl_name,a. CONSTRAINT_NAME as constraint_name,b.CONSTRAINT_TYPE from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE a join INFORMATION_SCHEMA.TABLE_CONSTRAINTS b on a.CONSTRAINT_NAME=b.CONSTRAINT_NAME
Fuente
2017-01-07 01:31:33 SunilBk
crea un procedimiento almacenado para enumerar los índices de una tabla de la base de datos en SQL Server
Fuente
2017-04-24 12:51:03
Cuestiones relacionadas