gpt4 book ai didi

python - 在peewee中设置严格的sql模式

转载 作者:行者123 更新时间:2023-11-29 12:22:13 26 4
gpt4 key购买 nike

我想在 mySQL 数据库中强制使用 ENUM 约束。为此,建议我使用“严格”sql 模式。在交互式提示中,可以使用以下之一进行设置:

SET GLOBAL sql_mode = 'STRICT_ALL_TABLES';
SET SESSION sql_mode = 'STRICT_ALL_TABLES';

或者在服务器启动时使用:

 --sql-mode="STRICT_ALL_TABLES"

或者在 my.cnf 中为:

sql-mode="STRICT_ALL_TABLES"

有没有办法在 peewee 中做这样的事情?也许通过扩展Database 类?或者在查询中注入(inject)原始sql?

最佳答案

您最好的选择可能是子类化 MySQLDatabase 并重写 _connect() 方法,例如

class StrictMySQLDatabase(MySQLDatabase):
def _connect(self, database, **kwargs):
conn = super(StrictMySQLDatabase, self)._connect(database, **kwargs)
cursor = conn.cursor()
cursor.execute("SET SESSION sql_mode = 'STRICT_ALL_TABLES';")
return conn

关于python - 在peewee中设置严格的sql模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28839615/

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