python-从SQLAlchemy在’CheckConstraint’中使用Regex
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-从SQLAlchemy在’CheckConstraint’中使用Regex,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含733字,纯文字阅读大概需要2分钟。
内容图文
![python-从SQLAlchemy在’CheckConstraint’中使用Regex](/upload/InfoBanner/zyjiaocheng/883/620bad6ca4f24a51b92ce4829ecb581a.jpg)
考虑下面的示例,如何根据给定的正则表达式使约束起作用?
在这种情况下,我在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’中使用Regex全部内容,希望文章能够帮你解决python-从SQLAlchemy在’CheckConstraint’中使用Regex所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。