Rewritten ohne Unter wählen ...
Damit wird der Tabellen- und Indexnamen für einen bestimmten Index zurück, wo sie auf einer einzigen (nicht näher bezeichnet) Säule
ist
SELECT table_name, index_name
FROM information_schema.statistics
WHERE table_schema='schema'
AND table_name='table'
AND index_name = 'index'
GROUP BY table_name, index_name
HAVING COUNT(*) = 1;
Dies ist die gleiche für alle einzelnen Spalte Indizes in einer Tabelle
SELECT table_name, index_name
FROM information_schema.statistics
WHERE table_schema='schema'
AND table_name='table'
GROUP BY table_name, index_name
HAVING COUNT(*) = 1;
Schließlich alle einzelnen Spalte Indizes in einer bestimmten Datenbank
SELECT table_name, index_name
FROM information_schema.statistics
WHERE table_schema='schema'
GROUP BY table_name, index_name
HAVING COUNT(*) = 1;
Dies funktioniert nicht. Dies listet weiterhin alle Indizes auf, die diesen Spaltennamen enthalten, unabhängig davon, ob es sich um einen mehrspaltigen Index handelt. – user3299633
Ja, tut mir leid, ich habe einen Fehler gemacht, als ich die Abfrage von meinem Test env nach SO kopiert habe. Sie sollten 'und Spaltenname = 'Spalte' in der inneren Abfrage fallen lassen. Ich habe die Antwort aktualisiert. Wenn Sie bereits den 'column_name' angeben, dann sind keine weiteren Spalten zu 'COUNT' übrig. – sauerburger
Haben Sie immer noch Probleme mit dieser Lösung? – sauerburger