与SqlAlchemy一起使用的异常。
基本异常类是 SQLAlchemyError
. 由于DBAPI异常而引发的异常都是 DBAPIError
.
在联接期间两个可选择项之间可以找到多个外键匹配时引发。
在提供无效或冲突的函数参数时引发。
此错误通常对应于构造时间状态错误。
如果在需要异步操作时没有等待异步操作,则异步小绿程序派生会引发错误。
当检测到循环依赖项时,由拓扑排序引发。
出现此错误的情况有两种:
在会话刷新操作中,如果两个对象相互依赖,则不能单独通过INSERT或DELETE语句插入或删除它们;需要更新以发布关联或预先取消关联其中一个外键约束值。这个 post_update
在中描述的标志 指向自身/相互依赖的行的行 可以解决这个循环。
在一个 MetaData.sorted_tables
二手术 ForeignKey
或 ForeignKeyConstraint
对象相互引用。应用 use_alter=True
标记为一个或两个,请参见 通过alter创建/删除外键约束 .
在SQL编译过程中发生错误时引发
在执行数据库操作失败时引发。
包装数据库操作基础的db-api引发的异常。标准DB-API异常类型的驱动程序特定实现由匹配的sqlAlchemy子类型包装。 DBAPIError
如果可能的话。DB API Error
类型映射到 DBAPIError
在sqlacalchemy中,否则名称是相同的。请注意,不能保证不同的DB-API实现会针对任何给定的错误条件引发相同的异常类型。
DBAPIError
特征 StatementError.statement
和 StatementError.params
属性,为在发出SQL语句的上下文中引发错误的典型情况提供有关有问题的语句细节的上下文。
包装的异常对象在 StatementError.orig
属性。它的类型和属性是特定于DB-API实现的。
包装DB-API数据错误。
包装DB-API数据库错误。
在原始DB-API连接上检测到断开连接。
连接池在内部引发并使用此错误。它可以由 PoolEvents.checkout()
事件,以便主机池强制重试;在池放弃并引发之前,将连续三次捕获异常 InvalidRequestError
关于连接尝试。
Object Name | Description |
---|---|
当应用于用户定义的异常类时,它不会包装在 |
|
将“code”添加为属性并将“_code_str”添加为方法的帮助器 |
当应用于用户定义的异常类时,它不会包装在 StatementError
如果错误是在执行语句的过程中发出的。
例如。::
from sqlalchemy.exc import DontWrapMixin
class MyCustomException(Exception, DontWrapMixin):
pass
class MySpecialType(TypeDecorator):
impl = String
def process_bind_param(self, value, dialect):
if value == 'invalid':
raise MyCustomException("invalid!")
将“code”添加为属性并将“_code_str”添加为方法的帮助器
架构名称超出最大字符限制时引发
包装DB-API完整性错误。
包装DB-API接口错误。
包装DB-API内部错误。
SQLAlchemy被要求做一些它不能做的事情。
此错误通常对应于运行时状态错误。
当连接池应使所有过时的连接失效时引发。
一个子类 DisconnectionError
这表示在连接上遇到的断开连接情况可能意味着整个池应该无效,因为数据库已经重新启动。
此异常的处理方式与 DisconnectionError
允许三次尝试在放弃前重新连接。
1.2 新版功能.
异步小绿程序引发的错误 await_ 如果在不在greenlet派生上下文内时调用。
RemovedIn20警告的子类型,指示仅移动的API。
需要一个数据库结果,但找到了多个。
在 1.4 版更改: 此异常现在是 sqlalchemy.exc
核心模块,从ORM中移出。符号仍可从导入 sqlalchemy.orm.exc
.
在联接期间两个可选择项之间不能定位外键时引发。
传递给 sqlalchemy.inspection.inspect()
没有生成供检查的上下文。
由提高 ForeignKey
以指示无法解析引用。
由提高 ForeignKey
当被推荐人 Column
找不到。
由提高 ForeignKey
当被推荐人 Table
找不到。
需要数据库结果,但未找到任何结果。
在 1.4 版更改: 此异常现在是 sqlalchemy.exc
核心模块,从ORM中移出。符号仍可从导入 sqlalchemy.orm.exc
.
不存在的列是从 Row
.
在找不到特定名称的动态加载模块(通常是数据库方言)时引发。
表不存在或对连接不可见。
包装DB-API NotSupportedError。
当将对象传递给不能作为SQL执行的.execute()时引发。
1.1 新版功能.
包装DB-API操作错误。
事务失败,需要回滚才能继续。
1.4 新版功能.
包装DB-API编程错误。
为使用SQLAlchemy 2.0中特别不推荐使用的API而发布。
sqlalchemy.exc.RemovedIn20Warning.
deprecated_since = '1.4'¶指示开始引发此否决警告的版本
从处于关闭状态的连接、光标或其他对象请求了操作。
为使用不推荐的API而发布。
sqlalchemy.exc.SADeprecationWarning.
deprecated_since = None¶指示开始引发此否决警告的版本
类似的警告 SADeprecationWarning
,此警告在现代版本的SQLAlchemy中不使用。
sqlalchemy.exc.SAPendingDeprecationWarning.
deprecated_since = None¶指示开始引发此否决警告的版本
运行时发布。
一般错误类。
执行SQL语句时出错。
StatementError
包装执行过程中引发的异常和功能 statement
和 params
提供有关有问题的语句细节的上下文的属性。
包装的异常对象在 orig
属性。
sqlalchemy.exc.StatementError.
orig = None¶DBAPI异常对象。
sqlalchemy.exc.StatementError.
params = None¶发生此异常时使用的参数列表。
sqlalchemy.exc.StatementError.
statement = None¶发生此异常时正在调用的字符串SQL语句。
当连接池在获取连接时超时时引发。
试图在没有数据库连接的情况下执行SQL。
表存在,但由于某种原因无法反映。
1.2 新版功能.
当给定的编译器不支持某个操作时引发。
flambé! the dragon and The Alchemist image designs created and generously donated by Rotem Yaari.
Created using Sphinx 4.2.0.