Ich versuche, eine Tabelle mit SQLAlchemy zu deklarieren. Ich möchte einen BIGINT automatisch inkrementierenden Primärschlüssel in die Tabelle aufnehmen. Dies scheint nicht mit SQLite als DB-Backend zu arbeiten. Auf der anderen Seite funktioniert INTEGER automatisch inkrementieren Primärschlüssel funktioniert gut.
Ich habe gelesen, dass sqlite ROWID hat, das ein unterschriebener Bigint ist. Aber gibt es eine Möglichkeit, ein BIGINT Auto-Inkrement-Feld zu haben? Auf diese Weise kann ich Backends austauschen, ohne sich um db-spezifische Probleme kümmern zu müssen (vorausgesetzt, MySQL und Postgres unterstützen Bigint-Autoinkrementierungsfelder).
Danke.
Sqlite erlaubt BIGINT
nicht als Primärschlüssel mit Autoinkrement.
Aufgrund der dynamischen Art der SQL-Spaltentypen können Sie jedoch einen Backend-spezifischen Spaltentyp erstellen und% verwenden co_de% type im Fall von INTEGER
backend, siehe SQLAlchemy: Wie man den Typ für die Spalte abhängig vom Backend bedingt anwählt .
Ich hoffe, das hilft.
Für andere, die über Google hierher kommen und nur eine Lösung brauchen, habe ich den folgenden Code geschrieben:
%Vor%Damit können Sie BIGINT für eine Datenbank und INT für das Ausführen von Komponententests verwenden.
Tags und Links sqlite sqlalchemy