如何使用SQLAlchemy将MySQL数据库中的列的值限制为预先指定的集合的一个或多个元素? (理想情况下,我想要一种使用MySQL的SET
datatype的方法。)
我有一个实验,涉及在几天内对许多人进行测量。实验开始后,许多人进入了实验(因此前几天的数据丢失了),偶尔有人退出了实验(后几天的数据丢失了)。在实验过程中,某些人也可能缺少测量结果。
我想制作一个表,其中存储有关每个人的一些信息,并列出进行测量的日期。
我希望像下面这样的方法可以工作,因为这大致就是SQLAlchemy supports Enum
s的方式。
import sqlalchemy as sql
experiment_days = {'day_1', 'day_2', 'day_3'}
sql.Column('days_measured', experiment_days)
不幸的是,我收到此错误消息:
AttributeError: 'set' object has no attribute '_set_parent_with_dispatch'
我期望获得一个Column
,其SET数据类型可以采用值day_1
,day_1,day2
,day_1,day_3
等。
答案 0 :(得分:1)
MySQL dialect支持MySQL SET
数据类型:
from sqlalchemy.dialects import mysql
class MyTable(Base):
...
myset = Column(mysql.SET('day_1', 'day_2', 'day_3'), ...)