我在Python代码库中使用SQLAlchemy作为ORM,以便能够连接到MySQL数据库。我想根据同一行中其他列的值自动计算并插入一个列中的值。
以下是我的类的样子:
class SentNotification(Base):
__tablename__ = 'sent_notification'
campaign = Column(VARCHAR(34), nullable=False)
alert_type = Column(VARCHAR(34), nullable=False)
identifier = Column(VARCHAR(34), nullable=False)
message_params = Column(JSON, nullable=True)
send_time = Column(Integer, nullable=False)
nonce = Column(VARCHAR(32), nullable=False, primary_key=True)
nonce
列应该是campaign
,alert_type
,identifier
和message_params
(json dump)的md5哈希值(或任何其他自定义函数)。明显可以单独计算此值并使用
SentNotification
调用nonce
,但如果只传入前5个值,我的类会自动处理计算和插入nonce
,那将更加简洁。注意:我不想使用混合属性(hybrid property),因为它仅计算值,而我实际上想要在数据库中持久化
nonce
。
上下文敏感默认函数
,这应该是你要找的。基本上,你可以定义一个函数来计算一个列的默认值,并在插入时访问其他被插入的值。 - SuperShoot