T-Rex: MySQL: Index als auch Foreign Key in einem Query aus der Datenbank auslesen

Moin,

ich versuche gerade einen Query zusammen zu bauen in dem ich sowohl einen Indexeintrag aus der Datenbank bekomme als auch einen kompletten Foreign Key Eintrag.

SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE CONSTRAINT_SCHEMA = 'mySchema'

Dieser Query gibt mir alle Foreign Keys (und anscheinend die Primary Indizes) inklusive Referenz-Tabelle und Referenz-Feld aus. Es fehlen jedoch die "normalen" Index-Einträge.

SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'mySchema'

Dieser Query gibt mir alle Indizes inklusive Primary und Foreign Keys zurück. Es fehlen jedoch leider die Referenz-Tabelle und das Referenz-Feld. Meine Versuche ein Join hin zu bekommen sind bislang fehl geschlagen.

Im Moment habe ich noch den Drang alles in einer Abfrage zu machen. Falls ich es nicht schaffe und ihr keine gute Idee habt, muss ich wohl zwei Abfragen machen.

Gruß kämpfender T-Rex

  1. Hab es selbst geschafft ... hab echt lange keinen join mehr zusammengebaut ... früher ging das deutlich schneller.

    SELECT * FROM INFORMATION_SCHEMA.STATISTICS
    left join 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE on 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_SCHEMA = 'mySchema' 
    and 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME = INFORMATION_SCHEMA.STATISTICS.INDEX_NAME 
    WHERE
    INFORMATION_SCHEMA.STATISTICS.TABLE_SCHEMA = 'mySchema'
    and 
    INFORMATION_SCHEMA.STATISTICS.INDEX_NAME != 'PRIMARY'
    

    Wie man sieht habe ich die Primarys heraus genommen. Ich brauche sie nicht. Der Query wird wohl auch nicht mit primarys funktionieren. Da diese alle die gleichen Namen haben, gibt es eine sehr große Kreuztabelle. Es werden auch Kreuzungen erzeugt die nicht zusammen passen. Wobei mir gerade einfällt, es funktioniert bei mir auch nur, weil ich eindeutige Indices Namen vergebe. Dennoch hoffe ich, dass noch jemand von dem Query profitieren kann.

    Gruß Primary T-Rex