2011-01-07 8 views
0

I DBIx :: Class bin mit Tabellen und deren Indizes zu erstellen und so SQL::Translator::Table add_index() nennen, aber ich möchte in der Lage sein, einen Wert, um auf einige der Spalten angeben, wie folgt aus:Wie kann ich die Reihenfolge der Indexwerte angeben, wenn ich die Funktion add_index von SQL :: Translator :: Table aufruft?

CREATE INDEX myindex ON mytable (
    username ASC, 
    created DESC 
); 

es ist möglich, die Modifikatoren 'ASC' und 'DESC' an add_table() zu liefern?

Wenn nicht, ich vermute, dass diese SQL ineffizient wäre:

SELECT text FROM mytable WHERE username = ? ORDER BY created DESC LIMIT 20; 

Jede vorgeschlagene Behelfslösung Datenbank-Aufwand in diesem Fall zu reduzieren? (Ich verwende MySql 5.x

Antwort

1

Nein, zur Zeit SQL::Translator::Producer::MySQL (und sogar DBIx :: Klasse selbst glaube ich) bietet keine Möglichkeit, dies zu tun.

Doch nach dem MySQL manual, dieser Index Sortierungen werden derzeit ignoriert:

Eine index_spalten_name Spezifikation kann Ende mit ASC oder DESC Diese Schlüsselwörter für zukünftige Erweiterungen erlaubt sind für aufsteigend Angabe oder Indexwert Speicher absteigend derzeit sie..werden analysiert, aber ignoriert; Indexwerte werden immer in aufsteigender Reihenfolge gespeichert.