Ich kann eine temporäre Tabelle auf diese Weise erstellen:
%Vor% aber die neue Tabelle ist nicht lesbar, weil sie sagt, dass sie keinen Primärschlüssel hat. existingtable.id
ist der Primärschlüssel von exisitingtable, also erwartete ich, dass es in der temporären Tabelle die gleiche Behandlung erhält.
Ich würde jedoch lieber einen ORM-Weg finden, um dies zu tun. Gegeben:
%Vor% Wie kann ich temp_table
mit einigen ausgewählten Inhalten von existingtable
füllen, ohne 100000 session.query.add(TempTable(...))
Befehle auszuführen? Oder gibt es eine Möglichkeit, die Tabelle aus einer Abfrage zu erstellen, die der obigen SQL-Version ähnelt?
Es ist nicht genau ORM, aber um die Tabelle zunächst zu erstellen, würde ich die Tabellenstruktur klonen (siehe cloneTable
im Beispiel unten). Zum Kopieren der Daten würde ich dann die InsertFromSelect Beispiel .
Bearbeiten: Seit Version 0.8.3 unterstützt SqlAlchemy Einfügen.von_select () out of the box. Daher können die InsertFromSelect-Klasse und der jeweilige Besucher im Beispiel unten direkt ersetzt werden und werden nicht mehr benötigt. Ich lasse das ursprüngliche Beispiel aus historischen Gründen unverändert.
Hier ist ein Arbeitsbeispiel
%Vor%Tags und Links python sql sqlalchemy