gpt4 book ai didi

python - 在 SQLAlchemy 的 'CheckConstraint' 中使用正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:49 45 4
gpt4 key购买 nike

考虑下面的例子,我怎样才能使约束根据给定的正则表达式起作用?

在这种情况下,我在 Flask 应用程序中使用 SQLAlchemy。

class user(db.Model):
iduser = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(45), unique=True)
CheckConstraint("REGEXP_LIKE(email,'^[a-zA-Z][a-zA-Z0-9_\.\-]+@([a-zA-Z0-9-]{2,}\.)+([a-zA-Z]{2,4}|[a-zA-Z]{2}\.[a-zA-Z]{2})$')", name='emailcheck')

(我不是 100% 确定最后一行的语法)

最佳答案

CHECK 约束需要在表本身中,使用 __table_args__:

class user(db.Model):
...
__table_args__ = (CheckConstraint("regexp_like(email, ...)", name=...),)

您也可以将它放在类之外,但是 SQLAlchemy 需要知道它用于哪个表,因此您需要将约束写为表达式而不是字符串:

class user(db.Model):
...

CheckConstraint(func.regexp_like(user.email, ...), name=...)

关于python - 在 SQLAlchemy 的 'CheckConstraint' 中使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44790668/

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