SQLAlchemy: пропустить атрибут в списке столбцов INSERT - PullRequest
1 голос
/ 30 июня 2011

Как мне исключить включение атрибута таблицы при вставке?

У меня есть следующий класс:

class PurchaseOrder(Base):
    __tablename__ = 'PPurchaseOrder'
    id = Column('PurchaseOrderId', Integer, Sequence('transactions_id_seq'), primary_key = True)
    code = Column(String(50))
    ris_id = Column('RisId', Integer, ForeignKey('BRIS.RisId'))
    creator = Column('CreatedBy', String(256))
    created = Column('CreateDate', DateTime)
    date_needed = Column('DateNeeded', DateTime)
    timestamp = Column('Timestamp', TIMESTAMP)

    supplier_items = AssociationProxy('purchase_order_items', 'supplier_item', creator='SupplierItem')
    purchase_order_items = relationship('PurchaseOrderItem', cascade="all, delete, delete-orphan",
            backref='purchase_order', lazy='joined')

    def __init__(self, code, created, date_needed):
        self.code = code
        self.creator = 'Marco'
        self.created = created
        self.date_needed = date_needed

При попытке добавить объект он выполняет следующий оператор вставки:

2011-06-30 22:37:26,953 INFO sqlalchemy.engine.base.Engine INSERT INTO [PPurchaseOrder] (code, [RisId], [CreatedBy], [CreateDate], [DateNeeded], [Timestamp]) OUTPUT inserted.[PurchaseOrderId] VALUES (?, ?, ?, ?, ?, ?)
2011-06-30 22:37:26,953 INFO sqlalchemy.engine.base.Engine ('POF000872008', None, 'Marco', datetime.datetime(2008, 5, 27, 8, 47, 18), datetime.datetime(2008, 5, 28, 15, 48), None)

Мне нужен столбец Timestamp, чтобы оператор вставки выглядел так:

2011-06-30 22:37:26,953 INFO sqlalchemy.engine.base.Engine INSERT INTO [PPurchaseOrder] (code, [RisId], [CreatedBy], [CreateDate], [DateNeeded]) OUTPUT inserted.[PurchaseOrderId] VALUES (?, ?, ?, ?, ?, ?)
2011-06-30 22:37:26,953 INFO sqlalchemy.engine.base.Engine ('POF000872008', None, 'Marco', datetime.datetime(2008, 5, 27, 8, 47, 18), datetime.datetime(2008, 5, 28, 15, 48))

1 Ответ

1 голос
/ 30 июня 2011

IIRC, предоставив аргумент default или server_default, переместит генерацию значения на сторону сервера Смотрите здесь для более

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...