我正在使用 Elixir 连接到 MSSQL 数据库。数据库有一个表,其中有一个计算列。但是,当我更新对象中的其他列并提交更改时,python 告诉我我无法插入计算列。
我在我的模型中使用自动加载:
class Slot(Entity):
using_options(tablename='tbScheduleSlots', autoload=True)
using_table_options(schema='sch')
我创建了一个 Slot 并给它一些值然后提交:
ss = Slot(StartDateTime='2012-01-01 13:00:00:000', Program_ID=1234, etc)
session.commit()
重要的提示!!我没有为 ss 对象提供 EndDateTime 的任何值,因为那是一个计算字段。如此有效,我没有将任何内容传回该字段的数据库。
错误:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) ('42000', '[42000] [FreeTDS][SQL Server]无法修改列“EndDateTime”,因为它要么是计算列,要么是 UNION 运算符的结果。( 271) (SQLPrepare)') 'INSERT INTO sch.[tbScheduleSlots] ([Program_ID], [SlotType_ID], [StartDateTime], [EndDateTime], [Duration], [Description], [Notes], [State], [MasterSlot_ID ]) 输出插入。[ID_ScheduleSlot] 值 (?, ?, ?, ?, ?, ?, ?, ?, ?)' (5130, 1, '2012-01-01 13:00:00:000', None , 无, 无, 无, 2, 无)