Ich musste das ein paar Mal googeln, also teile ich mein Q/A.Wie überprüfe ich, ob ein Index für ein Tabellenfeld in MySQL existiert?
Antwort
Verwenden SHOW INDEX
wie so:
SHOW INDEX FROM [tablename]
Docs: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
SHOW INDEX FROM 'my_table' WHERE Schlüsselname = 'index_to_check'; – mit
Bessere Verwendung von Column_name anstelle von Key_name. Auf diese Weise müssen Sie den Indexnamen nicht ermitteln, wenn er automatisch ohne Namen hinzugefügt wird. – Programista
Wie überprüft man mehrere Schlüssel? – berserk
auf der cli in einem Tabellen-Layout anschauen. würden Sie
tunab Mytable
oder
zeigen Tabelle mytable
Versuchen:
SELECT * FROM information_schema.statistics
WHERE table_schema = [DATABASE NAME]
AND table_name = [TABLE NAME] AND column_name = [COLUMN NAME]
Es wird Ihnen sagen, i f Es gibt einen Index jeder Art in einer bestimmten Spalte, ohne dass der Name des Indexes bekannt sein muss. Es wird auch in einer gespeicherten Prozedur arbeiten (im Gegensatz Index zeigen)
SHOW KEYS FROM tablename WHERE Key_name='unique key name'
Sie finden können, wenn es einen eindeutigen Schlüssel in der Tabelle
show index from table_name where Column_name='column_name';
existiert Sie keine bestimmte Show Index laufen Abfrage, weil es einen Fehler wirft, wenn ein Index nicht existiert. Daher müssen Sie alle Indizes in ein Array aufnehmen und diese durchlaufen, wenn Sie SQL-Fehler vermeiden möchten.
Heres, wie ich es mache. Ich nehme alle Indizes aus der Tabelle (in diesem Fall leads
) und überprüfe dann in einer foreach-Schleife, ob der Spaltenname (in diesem Fall province
) existiert oder nicht.
$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;
}
}
Auf diese Weise können Sie die Indexattribute wirklich eingrenzen. Machen Sie eine print_r
von $res
, um zu sehen, mit was Sie arbeiten können.
können Sie die folgende SQL-Anweisung verwenden, um die gegebenen Spalte auf Tabelle indiziert wurde zu prüfen oder nicht
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;
da die sind gegen INNODB_SYS_ * verbindet, so dass die Spiel-Indizes kamen nur aus InnoDB-Tabellen nur
Verwenden Sie die folgende Anweisung: SHOW INDEX FROM your_table
Und dann überprüfen Sie das Ergebnis für die Felder: row [ "Table"], row [ "Key_name"]
Stellen Sie sicher, dass Sie "Key_name" richtig schreiben
- 1. Wie überprüfe ich, ob ein Schlüssel in einem Datensatz existiert?
- 2. Wie überprüfe ich, ob in einem CachedRowSet ein Spaltenname existiert?
- 3. Wie überprüfe ich, ob ein Tag in XSLT existiert?
- 4. Wie überprüfe ich, ob ein Firebase-Datenbankwert existiert?
- 5. Wie überprüfe ich, ob ein couchdb Dokument existiert mit Python
- 6. Wie überprüfe ich, ob ein Index verwendet wird
- 7. Wie überprüfe ich, ob ein Verzeichnis mit SQL Server existiert?
- 8. Wie überprüfe ich am besten, ob ein Cookie existiert?
- 9. Wie überprüfe ich, ob ein Objekt in einem bestimmten Index eines NSMutableArray existiert?
- 10. Wie überprüfe ich, ob eine IsolatedStorageFile existiert?
- 11. Test ob ein Index einer Liste existiert
- 12. Wie überprüfe ich, ob ein NSTimer läuft?
- 13. Wie überprüfe ich in Python, ob ein Laufwerk existiert, das einen Fehler für Wechseldatenträger verursacht?
- 14. Wie überprüfe ich, ob die Spalte in der Tabelle existiert?
- 15. Wie überprüfe ich, ob ein Char ein Vokal ist?
- 16. Wie überprüfe ich, ob ein Objekt ein Byte-Array enthält?
- 17. Wie überprüfe ich, ob ein Mobilgerät bereits registriert wurde?
- 18. Wie überprüfe ich, ob eine Variable in eex existiert?
- 19. Wie füge ich Zufallswerte in ein Tabellenfeld ein?
- 20. Wie überprüfe ich, ob mein Array ein Objekt enthält?
- 21. RavenDb prüfen, ob Index existiert
- 22. Wie überprüfe ich, ob ein Verzeichnis in PHP beschreibbar ist?
- 23. Chef: Wie überprüfe ich, ob ein Service installiert ist?
- 24. Wie überprüfe ich, ob ein Schlüssel in einem Hash in Perl existiert?
- 25. Wie überprüfe ich, ob ein Element in der UI-Hierarchie existiert?
- 26. Wie überprüfe ich, ob ein Pfad in Zookeeper mit Curator existiert?
- 27. Wie überprüfe ich, ob ein Powershell-Modul installiert ist?
- 28. Prüfen, ob ein Verzeichnis in lua existiert?
- 29. Wie überprüfe ich, ob eine Datei in einer Fernbedienung existiert?
- 30. Wie überprüfe ich in Python, ob eine Variable existiert?
Wie überprüfen Sie mehrere Schlüssel? – berserk