Ich habe lokale Daten mit IDs aus einer externen Datenbank. Ich möchte dann Daten aus dieser externen Datenbank Wählen Sie die die ID verwenden, so kann ich so etwas wie:Verwenden IN Zustand mit einer großen Anzahl von Elementen
SELECT * FROM table WHERE id IN (:listofids)
aber ich bemerkt habe (ich bin nicht sicher, ob es ein DB DB-Einstellung oder die Art der DB ist oder was) es kann eine maximale Anzahl von Werten in dieser IN-Anweisung erlaubt sein. Wenn möglich mache ich natürlich WHERE id IN (SELECT id FROM ...)
aber manchmal mit externen Daten ist es nicht möglich.
Meine Fragen:
- Was neben meiner Möglichkeiten hier sind, was ich in der oben tue?
- Sind die Beschränkungen von Max Elemente auf der DB-Ebene, der Typ der DB, was? Im Moment beschäftige ich mich speziell mit einer externen RedShift-Datenbank, aber ich habe mir ihre Dokumente angeschaut und sie erwähnen kein Limit. Unsere lokale DB hat ein Limit von 2100, aber ein anderes, das ich verwende, ist 9999. Sobald die Liste groß wird, kann es langsam werden, also suche ich auch nach einem Leistungsschub.
- Sollte ich tun . Das scheint nicht zu glatt zu sein. Sind alle diese Optionen möglich?
- Ich habe ein wenig über mögliche Verwendung von temporären Tabellen gelesen, um dies zu tun, aber ohne Beispiele. Wie würde ich Daten in eine temporäre Tabelle laden, um sie dann in die Tabelle aufzunehmen, aus der die Daten stammen sollen?
Vielen Dank für Ihre Kommentare. Wenn Sie sagen, dass die Max-Elemente plattformspezifisch sind, meinen Sie, dass MSSQL immer maximal 2100, Orakel immer 9999 usw. oder etwas anderes sein wird? – Leeish
möglicherweise - oder das Maximum könnte von der Gesamtgröße (in Zeichen) der Abfrage oder etwas ganz anderes abhängen. –