나는 Google에이 두 번 필요 했으므로 Q/A를 공유하고 있습니다. 그래서 같은MySQL의 테이블 필드에 인덱스가 있는지 어떻게 확인합니까?
답변
사용 SHOW INDEX
:
SHOW INDEX FROM [tablename]
문서 : https://dev.mysql.com/doc/refman/5.0/en/show-index.html
SHOW INDEX FROM'my_table' WHERE Key_name = 'index_to_check'; – mit
Key_name 대신 Column_name을 사용하는 것이 더 효율적입니다. 이름없이 자동으로 추가되는 경우 인덱스 이름을 찾을 필요가 없습니다. – Programista
여러 개의 키를 확인하는 방법은 무엇입니까? – berserk
그냥 CLI에서 테이블 레이아웃에서 찾으십시오. 당신은 할 것
내림차순 MYTABLE
또는
쇼 MyTable 테이블
시도 :
SELECT * FROM information_schema.statistics
WHERE table_schema = [DATABASE NAME]
AND table_name = [TABLE NAME] AND column_name = [COLUMN NAME]
그것은 당신에게 내가 말할 것 f 색인에 주어진 이름을 알 필요없이 특정 열에 어떤 종류의 색인이 있습니다. (인덱스를 보여 반대) 또한 저장 프로 시저에서 작동
SHOW KEYS FROM tablename WHERE Key_name='unique key name'
show index from table_name where Column_name='column_name';
당신은 특정 쇼 인덱스를 실행할 수 없습니다 테이블에 고유 키가 존재하는 경우에 당신이 찾을 수 있습니다 쿼리가 존재하지 않기 때문에 오류가 발생하므로 쿼리를 사용하십시오. 따라서 SQL 오류를 방지하려면 모든 인덱스를 배열로 가져 와서 반복해야합니다.
내가 어떻게하는지. 테이블 (이 경우 leads
)에서 모든 인덱스를 가져온 다음 foreach 루프에서 열 이름 (이 경우 province
)이 존재하는지 확인합니다.
$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;
}
}
이렇게하면 색인 속성을 실제로 좁힐 수 있습니다. 작업 할 수있는 것을보기 위해 print_r
을 $res
으로하십시오.
당신은 인덱싱 된 테이블에 지정된 열을 확인하려면 다음 SQL 문을 사용 여부를
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;
을가 INNODB_SYS_ * 반대 조인 때문에, 그래서 경기 인덱스는 InnoDB 테이블 만
로부터 SHOW 색인을 그리고 필드에 대한 결과 확인 :
는 다음 문을 사용하여 행 [ "표"], 행 [ "KEY_NAME을"]
"Key_name"을 올바르게 작성했는지 확인하십시오.
- 1. 레코드의 키가 있는지 어떻게 확인합니까?
- 2. IsolatedStorageFile이 있는지 어떻게 확인합니까?
- 3. ArrayList에 특정 인덱스가 있는지 확인하십시오.
- 4. 클래스가 정의되어 있는지 어떻게 확인합니까?
- 5. XSLT에 태그가 있는지 어떻게 확인합니까?
- 6. 파이썬에서 변수가 있는지 어떻게 확인합니까?
- 7. 레일즈 애플리케이션 컨트롤러에 메소드가 있는지 어떻게 확인합니까?
- 8. 파이썬 사전에있는 많은 키가 있는지 어떻게 확인합니까?
- 9. WebView에서 특정 페이지를로드하고 있는지 어떻게 확인합니까?
- 10. 문자열에 날짜가 포함되어 있는지 어떻게 확인합니까?
- 11. 장고의 관리자 패널이 활성화되어 있는지 어떻게 확인합니까?
- 12. C# : DataGrid가 비어 있는지 어떻게 확인합니까?
- 13. Windows 전화에 GPS가 활성화되어 있는지 어떻게 확인합니까?
- 14. Gtk에서 윈도우가 최대화되어 있는지 어떻게 확인합니까?
- 15. SSIS 패키지에 플랫 파일이 있는지 어떻게 확인합니까?
- 16. Ruby에서 "foo =()"메소드가 정의되어 있는지 어떻게 확인합니까?
- 17. iPhone이 대기 모드에 있는지 어떻게 확인합니까?
- 18. 위젯이 Tkinter에 포커스를 가지고 있는지 어떻게 확인합니까?
- 19. 주어진 USB 장치가 연결되어 있는지 어떻게 확인합니까?
- 20. 봄 보안에 오류가 있는지 어떻게 확인합니까?
- 21. sqlite3 C++ API에 테이블이 있는지 어떻게 확인합니까?
- 22. 값이 벡터에 포함되어 있는지 어떻게 확인합니까? C++
- 23. 스파크리스트에서 항상 선택된 것이 있는지 어떻게 확인합니까?
- 24. 사용자가 WordPress에서 'manage_options'기능을 사용하고 있는지 어떻게 확인합니까?
- 25. NSView가 현재 표시되고 있는지 어떻게 확인합니까?
- 26. 올바른 데이터가 데이터 마트에 있는지 어떻게 확인합니까?
- 27. URL에 botw.org에 링크가 있는지 여부는 어떻게 확인합니까?
- 28. C++ : cin 버퍼가 비어 있는지 어떻게 확인합니까?
- 29. 여러 필드에 걸친 MySQL의 독창성
- 30. "닫기 FILEHANDLE"오류가 있는지 확인합니까?
여러 키를 확인하는 방법은 무엇입니까? – berserk