Các autoincrement
luận trong SQLAlchemy có vẻ là chỉ True
và False
, nhưng tôi muốn thiết lập được xác định trước giá trị aid = 1001
, thông qua autoincrement aid = 1002
khi chèn tiếp theo được thực hiện.Thiết SQLAlchemy autoincrement giá trị đầu
Trong SQL, có thể được thay đổi như sau:
ALTER TABLE article AUTO_INCREMENT = 1001;
Tôi đang sử dụng MySQL
và tôi đã cố gắng sau đó, nhưng nó không hoạt động:
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)
Vì vậy, làm thế nào tôi có thể nhận được cái đó? Cảm ơn trước!
Nó hoạt động! Cảm ơn rất nhiều. – Gorthon
Có cách nào để loại trừ điều này khỏi việc thực hiện tùy thuộc vào nhà cung cấp db không? ALTER ... AUTO_INCREMENT hoạt động tốt cho MySQL (và hầu hết các dbs khác tôi nghĩ), tuy nhiên, SQL này dường như không được hỗ trợ cho SQLITE. Cách giải quyết gần nhất tôi có thể tìm thấy là chèn/xóa: http://stackoverflow.com/questions/692856/set-start-value-for-autoincrement-in-sqlite – coderfi
Đã trả lời câu hỏi của riêng tôi. Poking thông qua các mã, tôi tìm thấy các giải pháp, được tài liệu bởi: http://docs.sqlalchemy.org/en/rel_0_8/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if Ở trên có thể được viết lại như event.listen ( Điều .__ table__, "after_create", DDL ("ALTER tABLE% (bảng) s AUTO_INCREMENT = 1001;") execute_if (phương ngữ = ('postgresql', 'mysql')) .) giúp tôi giải quyết vấn đề sqlite. – coderfi