Я использую Elixir для подключения к базе данных MSSQL. В базе данных есть таблица с вычисляемым столбцом. Однако, когда я обновляю другие столбцы в объекте и фиксирую изменения, python говорит мне, что я не могу вставить в вычисляемый столбец.
Я использую автозагрузку в моей модели:
class Slot(Entity):
using_options(tablename='tbScheduleSlots', autoload=True)
using_table_options(schema='sch')
Я создаю слот и присваиваю ему некоторые значения, затем фиксирую:
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. operator. (271) (SQLPrepare) ')' INSERT INTO sch. [tbScheduleSlots] ([Program_ID], [SlotType_ID], [StartDateTime], [EndDateTime], [Duration], [Description], [Notes], [State]] , [MasterSlot_ID]) OUTPUT вставлен. [ID_ScheduleSlot] VALUES (?,?,?,?,?,?,?,?,?) '(5130, 1,' 2012-01-01 13: 00: 00: 000 ', Нет, Нет, Нет, Нет, 2, Нет)