在问如何之前,我可能会先问是否可能。
那么,是否可以在 SQLAlchemy 上实际映射的表的所有列中仅保留表的某些列?
事实上,在我的表中,我有一列是由数据库计算的,它不应该被数据库用户修改。我实际上撤销了这样做的特权。
我的问题是 SQLAlchemy 试图在每一列上插入值:
INSERT INTO mytable (data_1, data_2, ..., data_n, computed_data) VALUES ...
相反,我希望它这样做:
INSERT INTO mytable (data_1, data_2, ..., data_n) VALUES ...
有谁知道这是否可能?如果是,如何配置此行为?
谢谢
2012-12-21:编辑
这是我的配置:
_mytable = Table('mytable', Base.metadata,
Column('id', Integer, primary_key=True),
Column('somedata', String),
Column('protecteddata', String),
)
class MyObject(Base):
__table__ = _mytable
_id = _mytable.c.id
def __init__(self, somedata):
self.somedata = somedata
我说的是使用 ORM 的 INSERT。当我没有为“protecteddata”提供任何值时,SQLAlchemy 似乎在我提交时为我的“protecteddata”提供了 None。