He necesitado Google esto un par de veces, así que estoy compartiendo mi Q/A.¿Cómo puedo verificar si existe un índice en un campo de tabla en MySQL?
Respuesta
Uso SHOW INDEX
así:
SHOW INDEX FROM [tablename]
Docs: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
MOSTRAR ÍNDICE FROM 'my_table' WHERE Key_name = 'index_to_check'; – mit
Mejor use Column_name en lugar de Key_name, de esta manera no necesita averiguar el nombre del índice si se agrega automáticamente sin nombre. – Programista
¿Cómo verificar varias claves? – berserk
para: Ver en un diseño de tablas desde la CLI. que haría
desc mitabla
o
tabla muestran mitabla
Probar:
SELECT * FROM information_schema.statistics
WHERE table_schema = [DATABASE NAME]
AND table_name = [TABLE NAME] AND column_name = [COLUMN NAME]
Se le dirá i f hay un índice de cualquier tipo en una determinada columna sin la necesidad de conocer el nombre dado al índice. También se trabajará en un procedimiento almacenado (en contraposición a mostrar índice)
SHOW KEYS FROM tablename WHERE Key_name='unique key name'
se puede encontrar si existe una clave única de la tabla
show index from table_name where Column_name='column_name';
no se puede ejecutar un programa específico de índice consulta porque generará un error si no existe un índice. Por lo tanto, debe tomar todos los índices en una matriz y recorrerlos si desea evitar cualquier error SQL.
Heres cómo lo hago. Agarro todos los índices de la tabla (en este caso, leads
) y luego, en un bucle foreach, compruebo si el nombre de la columna (en este caso, province
) existe o no.
$this->name = 'province';
$stm = $this->db->prepare('show index from `leads`');
$stm->execute();
$res = $stm->fetchAll();
$index_exists = false;
foreach ($res as $r) {
if ($r['Column_name'] == $this->name) {
$index_exists = true;
}
}
De esta manera realmente puede reducir los atributos del índice. Haz un print_r
de $res
para ver con qué puedes trabajar.
puede utilizar la siguiente instrucción SQL para comprobar la columna dada en la mesa fue indexada o no
select a.table_schema, a.table_name, a.column_name, index_name
from information_schema.columns a
join information_schema.tables b on a.table_schema = b.table_schema and
a.table_name = b.table_name and
b.table_type = 'BASE TABLE'
left join (
select concat(x.name, '/', y.name) full_path_schema, y.name index_name
FROM information_schema.INNODB_SYS_TABLES as x
JOIN information_schema.INNODB_SYS_INDEXES as y on x.TABLE_ID = y.TABLE_ID
WHERE x.name = 'your_schema'
and y.name = 'your_column') d on concat(a.table_schema, '/', a.table_name, '/', a.column_name) = d.full_path_schema
where a.table_schema = 'your_schema'
and a.column_name = 'your_column'
order by a.table_schema, a.table_name;
ya que las uniones están en contra de INNODB_SYS_ *, por lo que los índices de concordancia sólo vino de tablas InnoDB sólo
utilizar la siguiente instrucción: SHOW dE ÍNDICE your_table
y después comprobar el resultado de los campos: fila [ "tabla"], fila [ "KEY_NAME"]
Asegúrese de escribir "Key_name" correctamente
- 1. java: ArrayList: ¿cómo puedo verificar si existe un índice?
- 2. ¿Cómo puedo verificar si existe un objeto en un determinado índice de un NSMutableArray?
- 3. ¿Cómo puedo verificar si existe un directorio?
- 4. ¿Cómo verifica si existe un cierto índice en una tabla?
- 5. ¿Cómo puedo verificar si existe un procedimiento en un paquete?
- 6. ¿cómo puedo verificar si existe un archivo?
- 7. ¿Cómo puedo verificar si existe un buffer actual en Emacs?
- 8. ¿Cómo puedo verificar si existe un archivo en Perl?
- 9. ¿Cómo puedo verificar si un atributo existe en XmlAttributeCollection?
- 10. ¿Cómo puedo verificar si la columna de la tabla mysql existe?
- 11. Cómo verificar un índice en Oracle
- 12. ¿Cómo puedo verificar si existe un campo o no en MongoDB?
- 13. ¿Cómo puedo verificar si existe un nombre de usuario dado?
- 14. Poner un índice en un campo de fecha en MySQL
- 15. ¿Cómo verificar si ya existe un valor para evitar duplicados?
- 16. ¿Puedo verificar si existe un archivo en una URL?
- 17. ios cómo verificar si el objeto en la matriz en un índice particular existe?
- 18. ¿Puedo verificar si existe un archivo en una URL?
- 19. cómo decir crear un procedimiento si no existe en MySQL
- 20. MySQL SELECCIONE un campo como NULL si no existe en la tabla
- 21. ¿Cómo puedo verificar si existe o no un recurso incrustado?
- 22. ¿Cómo puedo verificar si existe un archivo usando Emacs Lisp?
- 23. ¿Cómo verificar si existe un cierto ensamblaje?
- 24. ¿Cómo verificar si existe un usuario postgres?
- 25. ¿Cómo verificar si existe un procedimiento almacenado?
- 26. MySQL: ¿Un campo de columna 'único' implica un índice, y si es así, por qué?
- 27. ¿Cómo agrego un índice único en un campo en una base de datos MySQL particionada?
- 28. ¿Cómo creo un índice DESC en MySQL?
- 29. ¿Cómo puedo verificar si un elemento existe en un conjunto de elementos?
- 30. ¿Cómo identificar si existe un índice Lucene.Net en una carpeta?
¿Cómo verificar varias claves? – berserk