Das autoincrement
Argument in SQLAlchemy scheint nur True
und False
zu sein, aber ich will aid = 1001
den vordefinierten Wert setzen, aid = 1002
die über Autoinkrement, wenn der nächste Einsatz erfolgt.SQLAlchemy Einstellung AutoIncrement Startwert
In SQL kann wie geändert werden:
ALTER TABLE article AUTO_INCREMENT = 1001;
ich MySQL
bin mit und ich habe versucht folgend, aber es funktioniert nicht:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Article(Base):
__tablename__ = 'article'
aid = Column(INTEGER(unsigned=True, zerofill=True),
autoincrement=1001, primary_key=True)
Also, wie kann ich Das? Danke im Voraus!
Es funktioniert! Vielen Dank. – Gorthon
Gibt es eine Möglichkeit zu verhindern, dass dies abhängig vom Datenbankanbieter ausgeführt wird? Der ALTER ... AUTO_INCREMENT funktioniert gut für MySQL (und die meisten anderen dbs, denke ich), jedoch wird diese SQL anscheinend für SQLITE nicht unterstützt. Die nächste Problemumgehung, die ich finden könnte, ist ein Einfügen/Löschen: http://stackoverflow.com/questions/692856/set-start-value-for-autoincrement-in-sqlite – coderfi
Beantwortete meine eigene Frage. Durch den Code stochernd, fand ich die Lösung, die dokumentiert wird durch: http://docs.sqlalchemy.org/en/rel_0_8/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if Das oben könnte neu geschrieben werden als event.listen ( Artikel .__ table__, "after_create" DDL ("TABLE ALTES% (Tabelle) s AUTO_INCREMENT = 1001;") execute_if (Dialekt = ('postgresql', 'mysql')) .) was mich um das SQLite-Problem bringt. – coderfi