Я пишу программу, которая использует базу данных с sqlalchemy в качестве клиента.
Вот одна из моих таблиц
class DownloadRecord(Base):
__tablename__ = "DownloadRecords"
id = Column("Id", Integer, primary_key=True, autoincrement=True)
download_name = Column("DownloadName", Unicode, nullable=False)
download_date = Column(
"DownloadDate", DateTime, default=datetime.datetime.utcnow, nullable=False
)
столбец download_date
определен со значением по умолчанию, и здесь, и в таблице на стороне сервера. Вот определение столбца на сервере ms sql
DownloadDate DATETIME NOT NULL DEFAULT GETDATE()
, однако я пытаюсь добавить запись DownloadRecord(download_name="new_download_name")
и получаю следующее исключение.
sqlalchemy .ex c .IntegrityError: (pyodb c .IntegrityError) ('23000', "[23000] [Microsoft] [SQL Собственный клиент сервера 11.0] [SQL Сервер] Невозможно вставить значение NULL в столбец 'DownloadDate', таблица 'DownloadRecords'; столбец не допускает пустые значения. INSERT завершается неудачно. (515) (SQLExecDirectW); [23000] [Microsoft] [SQL Собственный клиент сервера 11.0] [SQL Сервер] Оператор был прекращено. (3621) ") [SQL: ВСТАВИТЬ INTO [DownloadRecords] ([DownloadName], [DownloadDate]) ВЫХОД вставлен. [Id] ЗНАЧЕНИЯ (?,?)] [параметры: (" имя_нового_загрузки ", нет)]
Я также пытался сделать этот столбец обнуляемым, но когда я добавил новую строку, столбец DownloadDate
был пустым. Как мне сделать так, чтобы оно автоматически использовало значение по умолчанию?