gpt4 book ai didi

python - 如何在 SQLAlchemy 中设置 MySQL SET 的 server_default?

转载 作者:行者123 更新时间:2023-11-29 11:32:20 24 4
gpt4 key购买 nike

我有一个 MySQL 集列,我使用 sqlalchemy.dialects.mysql.SET 来描述我想设置 server_default arg 到包含两个值的集合。我正在寻找这样的东西:

from sqlalchemy.dialects.mysql import SET
class MyTable(Model):
letters = Column(SET('a', 'b', 'c', 'd', 'e'), server_default=['a','b'])

如果我尝试像上面这样简单的事情,我会得到:

Argument 'arg' is expected to be one of type '<class 'str'>' or '<class 'sqlalchemy.sql.elements.ClauseElement'>' or '<class 'sqlalchemy.sql.elements.TextClause'>', got '<class 'list'>'

有什么地方可以找到我可以使用的 ClauseElements 列表吗?

最佳答案

也许不同 ClauseElement 的最佳引用是 "Column Elements and Expressions" .

来自阅读"The SET Type"似乎将值传递到 MySQL 中的 SET 列的常见方法是使用带有逗号分隔值的 (SQL) 字符串文字。一种方法是使用 SQLAlchemy 的 literal() ,它会生成合适的绑定(bind)参数。然后您将传递一个像这样的文字字符串:

from sqlalchemy import literal
from sqlalchemy.dialects.mysql import SET

class MyTable(Model):

letters = Column(SET('a', 'b', 'c', 'd', 'e'), server_default=literal('a,b'))

关于python - 如何在 SQLAlchemy 中设置 MySQL SET 的 server_default?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37199214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com