提供列默认值的替身

时间:2019-05-25 15:04:42

标签: python sqlalchemy

我有一个SQL Server表,该表在InsertedDate列上具有默认值:

CREATE TABLE MyTable
(
    RowID int,
    Date datetime DEFAULT(GETDATE())
)

我想创建一个接受字典作为输入的函数。它可能有也可能没有密钥Date

import sqlalchemy as sa

def insert(data, engine):
    meta = sa.MetaData()
    table = sa.Table('MyTable', meta, autoload=True, autoload_with=engine)
    ins = table.insert().values(
        RowID=data['RowID'],
        Date=data.get('Date', ???) # what to put here?
    )

    with engine.connect() as conn:
        conn.execute(ins)

我应该如何编写它,以便如果在字典中提供Date,它将被使用。如果data没有Date,则使用数据库中定义的默认值。实际的默认值是由复杂的CLR函数生成的,我不想在Python中重新创建。

0 个答案:

没有答案