如何捕获错误1062“重复条目”独立于使用的数据库/引擎?
发布时间:2020-05-24 14:27:46 所属栏目:MsSql 来源:互联网
导读:在一个项目中,我开始使用 MySQL作为数据库.而不是先检查,我只是做一个插入,如果我得到代码1062的IntegrityError异常,我知道有一个重复的条目并警告用户,这样做. 看起来基本上是这样的: try: # add duplicate, nothing bad happens yet, is only in sqla sess
|
在一个项目中,我开始使用 MySQL作为数据库.而不是先检查,我只是做一个插入,如果我得到代码1062的IntegrityError异常,我知道有一个重复的条目并警告用户,这样做. 看起来基本上是这样的: try:
# add duplicate,nothing bad happens yet,is only in sqla session
db.session.add(User(email='already_used_email@address_that_has_to_be_unique.com'))
# commit,now the IntegrityError is raised,when sqla inserts
db.session.commit()
except IntegrityError as e:
db.session.rollback()
# this is what i do with mysql,check the exception for code 1062
# how can i replace this with something db independent?
code,msg = e.orig
if code == 1062:
# send warning
pass
现在,对于一个,这使得已经无法用例如测试.内存中的sqlite.不好,但我可以忍受. 然而,第二,我可能(必须/希望其他超出此问题的范围)切换到Postgres.当然我可以更改代码(也)检查Postgres错误代码,但我希望有一种方法让SQLALchemy告诉我,重复发生独立于数据库.数据库方言抽象……? 解决方法您要搜索的内容称为“SQLSTATE” – 一组标准错误代码,涵盖了大多数常见的RDBMS错误状态.但它们并不一定能为所有目的提供足够的细节,我不知道sqlite是否支持它们.> http://www.postgresql.org/docs/9.1/static/errcodes-appendix.html (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- sql-server – 我们应该升级到SQL Server 2005还
- 数据库 – WordPress:site_id和blog_id之间的区
- sql-server – netlogon错误
- SQL Server sql cast,convert,QUOTENAME,exec
- 在SQL Server中将数据类型Varchar更改为Varbinar
- join()如何工作? (Java中的多线程)
- Centos 6.4源码安装mysql-5.6.28.tar.gz教程
- SQLServer 全文检索(full-text)语法
- 在没有自动增量字段的数据库上的sql – AutoIncr
- 数据库设计 – 在逻辑/布尔数据库字段中使用[0,1
热点阅读
