El argumento autoincrement
en SQLAlchemy parece ser única y True
False
, pero quiero establecer el valor predefinido aid = 1001
, a través de la autoincrement aid = 1002
cuando la próxima inserción se realiza.Configuración SQLAlchemy AutoIncrement valor inicial
En de SQL, se puede cambiar como:
ALTER TABLE article AUTO_INCREMENT = 1001;
estoy usando MySQL
y he tratado siguiente, aunque no funciona:
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)
Entonces, cómo puedo conseguir ¿ese? ¡Gracias por adelantado!
¡Funciona! Muchas gracias. – Gorthon
¿Hay alguna forma de excluir que se ejecute según el proveedor de db? El ALTER ... AUTO_INCREMENT funciona bien para MySQL (y para la mayoría de los otros dbs, creo), sin embargo, este SQL aparentemente no es compatible con SQLITE. La solución más cercana que pude encontrar es hacer una inserción/eliminación: http://stackoverflow.com/questions/692856/set-start-value-for-autoincrement-in-sqlite – coderfi
Respondí mi propia pregunta. Hurgando en el código, encontré la solución, que está documentada por: http://docs.sqlalchemy.org/en/rel_0_8/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if Lo anterior podría reescribirse como event.listen ( artículo .__ table__, "after_create", DDL ("ALTER TABLE% (tabla) s AUTO_INCREMENT = 1.001;") execute_if (dialecto = ('PostgreSQL', 'mysql')) .) que me ayuda a resolver el problema de sqlite. – coderfi