这里列出了一些关键的内部结构。
sqlalchemy.engine.interfaces.
Compiled
(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs={})¶表示已编译的SQL或DDL表达式。
这个 __str__
方法 Compiled
对象应生成语句的实际文本。 Compiled
对象特定于其基础数据库方言,也可能特定于或可能不特定于特定绑定参数集中引用的列。在任何情况下都不应该 Compiled
对象依赖于这些绑定参数的实际值,即使它可以将这些值作为默认值引用。
__init__
(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs={})¶构建新的 Compiled
对象。
compile
()¶生成此元素的内部字符串表示形式。
0.7 版后已移除: 这个 Compiled.compile()
方法已弃用,将在将来的版本中删除。这个 Compiled
对象现在在构造函数中运行其编译,而此方法什么也不做。
execute
(*multiparams, **params)¶执行此编译对象。
execution_options
= {}¶从语句传播的执行选项。在某些情况下,语句的子元素可以修改这些内容。
params
¶返回此已编译对象的绑定参数。
scalar
(*multiparams, **params)¶执行此编译对象并返回结果的标量值。
sql_compiler
¶返回能够处理SQL表达式的已编译。
如果这个编译器是一个,它可能只返回“self”。
sqlalchemy.sql.compiler.
DDLCompiler
(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs={})¶基地: sqlalchemy.sql.compiler.Compiled
__eq__
¶继承 __eq__
属性 object
返回self==值。
__init__
(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs={})¶继承 __init__()
方法 Compiled
构建新的 Compiled
对象。
__le__
¶继承 __le__
属性 object
返回self<=value。
__lt__
¶继承 __lt__
属性 object
返回self<value。
__ne__
¶继承 __ne__
属性 object
回归自我!=值。
compile
()¶继承 compile()
方法 Compiled
生成此元素的内部字符串表示形式。
0.7 版后已移除: 这个 Compiled.compile()
方法已弃用,将在将来的版本中删除。这个 Compiled
对象现在在构造函数中运行其编译,而此方法什么也不做。
define_constraint_remote_table
(constraint, table, preparer)¶设置CREATE CONSTRAINT子句的远程表子句的格式。
execute
(*multiparams, **params)¶继承 execute()
方法 Compiled
执行此编译对象。
params
¶继承 params
属性 Compiled
返回此已编译对象的绑定参数。
scalar
(*multiparams, **params)¶继承 scalar()
方法 Compiled
执行此编译对象并返回结果的标量值。
sqlalchemy.engine.default.
DefaultDialect
(convert_unicode=False, encoding='utf-8', paramstyle=None, dbapi=None, implicit_returning=None, supports_right_nested_joins=None, case_sensitive=True, supports_native_boolean=None, empty_in_strategy='static', label_length=None, **kwargs)¶基地: sqlalchemy.engine.interfaces.Dialect
方言默认实现
__eq__
¶继承 __eq__
属性 object
返回self==值。
__le__
¶继承 __le__
属性 object
返回self<=value。
__lt__
¶继承 __lt__
属性 object
返回self<value。
__ne__
¶继承 __ne__
属性 object
回归自我!=值。
connect
(*cargs, **cparams)¶返回设置新创建的DBAPI连接的可调用文件。
可调用接受单个参数“conn”,即dbapi连接本身。它没有返回值。
这用于设置每个连接的方言范围选项,如隔离模式、Unicode模式等。
如果返回了一个可调用文件,那么它将被组装到接收直接DBAPI连接的池侦听器中,并删除所有包装。
如果没有返回,则不会生成侦听器。
construct_arguments
= None¶各种SQLAlchemy构造的可选参数说明符集,通常是模式项。
要实现,建立为一系列元组,如:
construct_arguments = [
(schema.Index, {
"using": False,
"where": None,
"ops": None
})
]
如果上述结构建立在PostgreSQL方言上,则 Index
构造现在将接受关键字参数 postgresql_using
, postgresql_where
NAD postgresql_ops
. 为的构造函数指定的任何其他参数 Index
前缀是 postgresql_
将提高 ArgumentError
.
一种方言,不包括 construct_arguments
成员将不参与参数验证系统。对于这种方言,所有参与构造都接受任何参数名,位于以该方言名为前缀的参数名称空间内。这里的基本原理是,尚未实现此功能的第三方方言继续以旧方式工作。
0.9.2 新版功能.
参见
DialectKWArgs
- implementing base class which consumes
DefaultDialect.construct_arguments
create_connect_args
(url)¶构建与DB-API兼容的连接参数。
create_xid
()¶创建随机的两阶段事务ID。
此ID将传递给do_begin_Twophase()、do_rollback_Twophase()、do_commit_Twophase()。其格式未指定。
dbapi_exception_translation_map
= {}¶在DBAPI发布的异常实际上没有 __name__ 他们是有联系的。
1.0.5 新版功能.
ddl_compiler
¶denormalize_name
(name)¶继承 denormalize_name()
方法 Dialect
如果给定名称是全小写名称,则将其转换为后端的不区分大小写的标识符。
此方法仅在方言定义需要u name_normalize=true时使用。
do_begin
(dbapi_connection)¶提供 connection.begin()
,给定DB-API连接。
DBAPI没有专用的“begin”方法,并且预期事务是隐式的。这个钩子是为那些在这个领域可能需要额外帮助的DBAPI提供的。
注意 Dialect.do_begin()
除非 Transaction
对象正在使用中。这个 Dialect.do_autocommit()
钩子是为dbapis提供的,当sqlAlchemy Connection
在默认的“自动提交”模式下使用。
dbapi_connection¶ -- DBAPI连接,通常在 ConnectionFairy
.
do_begin_twophase
(connection, xid)¶继承 do_begin_twophase()
方法 Dialect
在给定连接上开始两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
do_commit
(dbapi_connection)¶提供 connection.commit()
,给定DB-API连接。
dbapi_connection¶ -- DBAPI连接,通常在 ConnectionFairy
.
do_commit_twophase
(connection, xid, is_prepared=True, recover=False)¶继承 do_commit_twophase()
方法 Dialect
在给定的连接上提交一个两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
is_prepared¶ -- 不论是否 TwoPhaseTransaction.prepare()
被叫来。
recover¶ -- 如果传递了恢复标志。
do_execute
(cursor, statement, parameters, context=None)¶提供 cursor.execute(statement, parameters)
.
do_execute_no_params
(cursor, statement, context=None)¶提供 cursor.execute(statement)
.
不应发送参数集合。
do_executemany
(cursor, statement, parameters, context=None)¶提供 cursor.executemany(statement, parameters)
.
do_prepare_twophase
(connection, xid)¶继承 do_prepare_twophase()
方法 Dialect
在给定连接上准备一个两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
do_recover_twophase
(connection)¶继承 do_recover_twophase()
方法 Dialect
恢复给定连接上未提交的准备好的两阶段事务标识符的列表。
connection¶ -- 一 Connection
.
do_release_savepoint
(connection, name)¶释放连接上的命名保存点。
connection¶ -- 一 Connection
.
name¶ -- 保存点名称。
do_rollback
(dbapi_connection)¶提供 connection.rollback()
,给定DB-API连接。
dbapi_connection¶ -- DBAPI连接,通常在 ConnectionFairy
.
do_rollback_to_savepoint
(connection, name)¶回滚到命名保存点的连接。
connection¶ -- 一 Connection
.
name¶ -- 保存点名称。
do_rollback_twophase
(connection, xid, is_prepared=True, recover=False)¶在给定连接上回滚两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
is_prepared¶ -- 不论是否 TwoPhaseTransaction.prepare()
被叫来。
recover¶ -- 如果传递了恢复标志。
do_savepoint
(connection, name)¶创建具有给定名称的保存点。
connection¶ -- 一 Connection
.
name¶ -- 保存点名称。
engine_created
(engine)¶继承 engine_created()
方法 Dialect
在返回决赛前调用了一个方便挂钩 Engine
.
如果方言返回的类与 get_dialect_cls()
方法,然后在两个类上调用钩子,首先在由 get_dialect_cls()
方法,然后在调用方法的类上。
方言和/或包装机应使用钩子将特殊事件应用于引擎或其组件。特别是,它允许方言包装类应用方言级别的事件。
1.0.3 新版功能.
execute_sequence_format
¶builtins.tuple
的别名
execution_ctx_cls
¶get_check_constraints
(connection, table_name, schema=None, **kw)¶返回有关签入约束的信息 table_name .
给定字符串 table_name 和可选字符串 schema ,将检查约束信息作为具有以下键的dict列表返回:
检查约束的名称
检查约束的SQL表达式
传递给方言的get_check_constraints()方法的其他选项。
1.1.0 新版功能.
get_columns
(connection, table_name, schema=None, **kw)¶继承 get_columns()
方法 Dialect
返回有关中列的信息 table_name .
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,以字典列表的形式返回列信息,其中包含以下键:
列的名称
[sqlalchemy.types#TypeEngine]
布尔
列的默认值
布尔
“maxValue”:int,“nominValue”:bool,“nomaxValue”:bool,“cycle”:bool,“cache”:int,“order”:bool_
可能存在其他列属性。
get_dialect_cls
(url)¶继承 get_dialect_cls()
方法 Dialect
给定一个URL,返回 Dialect
会用到的。
这是一个钩子,它允许外部插件围绕现有方言提供功能,方法是允许基于入口点从URL加载插件,然后插件返回要使用的实际方言。
默认情况下,这只返回cls。
1.0.3 新版功能.
get_foreign_keys
(connection, table_name, schema=None, **kw)¶继承 get_foreign_keys()
方法 Dialect
返回有关中的外键的信息 table_name .
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,将外键信息作为带有这些键的dict列表返回:
约束的名称
构成外键的列名列表
引用的架构的名称
引用表的名称
引用表中与受约束的列对应的列名称列表
get_indexes
(connection, table_name, schema=None, **kw)¶继承 get_indexes()
方法 Dialect
返回有关中索引的信息 table_name .
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,将索引信息作为具有以下键的字典列表返回:
索引的名称
按顺序排列的列名列表
布尔
get_isolation_level
(dbapi_conn)¶继承 get_isolation_level()
方法 Dialect
给定DBAPI连接,返回其隔离级别。
使用时 Connection
对象,可以使用 Connection.connection
访问器。
请注意,这是一个方言级别的方法,用作 Connection
和 Engine
隔离级设施;对于大多数典型的用例,这些API应该是首选的。
参见
Connection.get_isolation_level()
-查看当前级别
Connection.default_isolation_level
-查看默认级别
Connection.execution_options.isolation_level
-设置 Connection
隔离级别
create_engine.isolation_level
-设置 Engine
隔离级别
get_pk_constraint
(conn, table_name, schema=None, **kw)¶兼容性方法,为那些不实现get_pk_约束()的方言调整get_primary_keys()的结果。
get_primary_keys
(connection, table_name, schema=None, **kw)¶继承 get_primary_keys()
方法 Dialect
返回有关中主键的信息 table_name .
0.8 版后已移除: 这个 Dialect.get_primary_keys()
方法已弃用,将在将来的版本中删除。请参阅 Dialect.get_pk_constraint()
方法。
get_table_comment
(connection, table_name, schema=None, **kw)¶继承 get_table_comment()
方法 Dialect
返回由标识的表的“注释” table_name .
给定字符串 table_name 和可选字符串 schema ,将表注释信息作为具有此键的字典返回:
注释的文本
加薪 NotImplementedError
不支持评论的方言。
1.2 新版功能.
get_table_names
(connection, schema=None, **kw)¶继承 get_table_names()
方法 Dialect
返回表名列表 schema .
get_temp_table_names
(connection, schema=None, **kw)¶如果基础后端支持,则返回给定连接上的临时表名列表。
get_temp_view_names
(connection, schema=None, **kw)¶继承 get_temp_view_names()
方法 Dialect
如果基础后端支持,则返回给定连接上的临时视图名称列表。
get_unique_constraints
(connection, table_name, schema=None, **kw)¶返回有关中唯一约束的信息 table_name .
给定字符串 table_name 和可选字符串 schema ,返回唯一约束信息作为具有以下键的dict列表:
唯一约束的名称
按顺序排列的列名列表
其他选项传递给方言的get_unique_constraints()方法。
0.9.0 新版功能.
get_view_definition
(connection, view_name, schema=None, **kw)¶继承 get_view_definition()
方法 Dialect
返回视图定义。
给出了一个 Connection
一个字符串 view_name 和可选字符串 schema ,返回视图定义。
get_view_names
(connection, schema=None, **kw)¶继承 get_view_names()
方法 Dialect
返回数据库中所有可用视图名称的列表。
可选,从非默认架构中检索名称。
has_sequence
(connection, sequence_name, schema=None)¶继承 has_sequence()
方法 Dialect
检查数据库中是否存在特定序列。
给出了一个 Connection
对象和字符串 sequence_name ,如果给定序列存在于数据库中,则返回true,否则返回false。
has_table
(connection, table_name, schema=None)¶继承 has_table()
方法 Dialect
检查数据库中是否存在特定表。
给出了一个 Connection
对象和字符串 table_name ,如果给定的表(可能在指定的 schema )存在于数据库中,否则为false。
initialize
(connection)¶在有连接的方言的战略性创建过程中调用。
允许方言根据服务器版本信息或其他属性配置选项。
这里传递的连接是一个具有完整功能的sqlAlchemy连接对象。
应该通过super()调用基方言的initialize()方法。
is_disconnect
(e, connection, cursor)¶如果给定的db-api错误指示无效连接,则返回true
normalize_name
(name)¶继承 normalize_name()
方法 Dialect
如果检测到给定名称不区分大小写,则将其转换为小写。
此方法仅在方言定义需要u name_normalize=true时使用。
on_connect
()¶返回设置新创建的DBAPI连接的可调用文件。
这用于设置每个连接的方言范围选项,如隔离模式、Unicode模式等。
如果返回了一个可调用文件,那么它将被组装到接收直接DBAPI连接的池侦听器中,并删除所有包装。
如果没有返回,则不会生成侦听器。
preparer
¶reflecttable
(connection, table, include_columns, exclude_columns, resolve_fks, **opts)¶从数据库加载表说明。
给出了一个 Connection
和A Table
对象,从数据库中反映其列和属性。
此方法的实现由 DefaultDialect.reflecttable()
,利用 Inspector
以检索列信息。
方言应 not 寻求实现此方法,并应改为实现单独的模式检查操作,例如 Dialect.get_columns()
, Dialect.get_pk_constraint()
等。
reset_isolation_level
(dbapi_conn)¶给定DBAPI连接,将其隔离恢复为默认值。
请注意,这是一个方言级别的方法,用作 Connection
和 Engine
隔离级设施;对于大多数典型的用例,这些API应该是首选的。
参见
Connection.get_isolation_level()
-查看当前级别
Connection.default_isolation_level
-查看默认级别
Connection.execution_options.isolation_level
-设置 Connection
隔离级别
create_engine.isolation_level
-设置 Engine
隔离级别
set_isolation_level
(dbapi_conn, level)¶继承 set_isolation_level()
方法 Dialect
给定DBAPI连接,设置其隔离级别。
请注意,这是一个方言级别的方法,用作 Connection
和 Engine
隔离级设施;对于大多数典型的用例,这些API应该是首选的。
参见
Connection.get_isolation_level()
-查看当前级别
Connection.default_isolation_level
-查看默认级别
Connection.execution_options.isolation_level
-设置 Connection
隔离级别
create_engine.isolation_level
-设置 Engine
隔离级别
statement_compiler
¶type_compiler
¶sqlalchemy.sql.compiler.GenericTypeCompiler
的别名
type_descriptor
(typeobj)¶提供特定于数据库的 TypeEngine
对象,给定来自类型模块的通用对象。
此方法查找名为 colspecs
作为类或实例级变量,并传递到 types.adapt_type()
.
sqlalchemy.engine.interfaces.
Dialect
¶定义特定数据库和DB-API组合的行为。
元数据定义、SQL查询生成、执行、结果集处理或数据库之间变化的任何方面都在方言的一般类别下定义。方言充当其他特定于数据库的对象实现(包括ExecutionContext、Compiled、DefaultGenerator和TypeEngine)的工厂。
所有方言都实现以下属性:
从DBAPI中立的角度识别方言的名称(即“sqlite”)。
标识方言DBAPI的名称
如果此方言的paramStyle是位置的,则为true。
要使用的参数样式(某些DB API支持多个参数样式)。
如果应将Unicode转换应用于所有 str
类型。
用于Unicode的编码类型,通常默认为“utf-8”。
一 Compiled
用于编译SQL语句的类
一 Compiled
用于编译DDL语句的类
包含正在使用的数据库后端版本号的元组。此值仅可用于支持方言,通常在与数据库的初始连接期间填充。
默认架构的名称。此值仅可用于支持方言,通常在与数据库的初始连接期间填充。
一 ExecutionContext
用于处理语句执行的类
“tuple”或“list”类型,具体取决于cursor.execute()接受第二个参数的类型(它们各不相同)。
一 IdentifierPreparer
用于引用标识符的类。
True
如果数据库支持 ALTER TABLE
.
标识符名称的最大长度。
指示db-api是否可以作为python unicode字符串接收SQL语句
指示db-api是否可以作为python unicode字符串接收字符串绑定参数
指示方言是否正确实现的行数 UPDATE
和 DELETE
声明。
指示方言是否正确实现的行数 UPDATE
和 DELETE
通过ExecuteMany执行时的语句。
如果“implicit”主键函数必须单独执行才能获取其值,则为true。这是目前面向PostgreSQL的。
在插入执行期间使用返回或等效项,以便在一次执行中加载新生成的主键和其他列默认值,然后通过插入的主键可用。如果INSERT语句显式指定了RETURN(),则不使用“隐式”功能,插入的_primary_键将不可用。
从SQLAlchemy.types映射到特定于方言类的子类的typeengine类的字典。此字典仅为类级别,不能从方言实例本身访问。
指示构造 INSERT INTO tablename DEFAULT VALUES
支持
指示方言是否支持创建序列或类似。
如果为true,则指示sequence()构造上的“可选”标志是否应发出不生成创建序列的信号。仅适用于支持序列的方言。目前只允许在指定sequence()用于其他后端的列上使用postgresql-serial。
指示方言是否支持本机枚举构造。这将阻止types.enum在使用该类型时生成check约束。
指示方言是否支持本机布尔构造。这将阻止类型.Boolean在使用该类型时生成检查约束。
一种名称字典,其中将包含键入备用类名的PEP-249异常的名称(integrityerror、operationalerror等)作为值,以支持DBAPI具有未按其所指命名的异常类(例如integrityerror=myException)的情况。在绝大多数情况下,这本词典是空的。
1.0.5 新版功能.
connect
()¶返回设置新创建的DBAPI连接的可调用文件。
可调用接受单个参数“conn”,即dbapi连接本身。它没有返回值。
这用于设置每个连接的方言范围选项,如隔离模式、Unicode模式等。
如果返回了一个可调用文件,那么它将被组装到接收直接DBAPI连接的池侦听器中,并删除所有包装。
如果没有返回,则不会生成侦听器。
create_connect_args
(url)¶构建与DB-API兼容的连接参数。
create_xid
()¶创建两阶段事务ID。
此ID将传递给do_begin_Twophase()、do_rollback_Twophase()、do_commit_Twophase()。其格式未指定。
denormalize_name
(name)¶如果给定名称是全小写名称,则将其转换为后端的不区分大小写的标识符。
此方法仅在方言定义需要u name_normalize=true时使用。
do_begin
(dbapi_connection)¶提供 connection.begin()
,给定DB-API连接。
DBAPI没有专用的“begin”方法,并且预期事务是隐式的。这个钩子是为那些在这个领域可能需要额外帮助的DBAPI提供的。
注意 Dialect.do_begin()
除非 Transaction
对象正在使用中。这个 Dialect.do_autocommit()
钩子是为dbapis提供的,当sqlAlchemy Connection
在默认的“自动提交”模式下使用。
dbapi_connection¶ -- DBAPI连接,通常在 ConnectionFairy
.
do_begin_twophase
(connection, xid)¶在给定连接上开始两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
do_commit
(dbapi_connection)¶提供 connection.commit()
,给定DB-API连接。
dbapi_connection¶ -- DBAPI连接,通常在 ConnectionFairy
.
do_commit_twophase
(connection, xid, is_prepared=True, recover=False)¶在给定的连接上提交一个两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
is_prepared¶ -- 不论是否 TwoPhaseTransaction.prepare()
被叫来。
recover¶ -- 如果传递了恢复标志。
do_execute
(cursor, statement, parameters, context=None)¶提供 cursor.execute(statement, parameters)
.
do_execute_no_params
(cursor, statement, parameters, context=None)¶提供 cursor.execute(statement)
.
不应发送参数集合。
do_executemany
(cursor, statement, parameters, context=None)¶提供 cursor.executemany(statement, parameters)
.
do_prepare_twophase
(connection, xid)¶在给定连接上准备一个两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
do_recover_twophase
(connection)¶恢复给定连接上未提交的准备好的两阶段事务标识符的列表。
connection¶ -- 一 Connection
.
do_release_savepoint
(connection, name)¶释放连接上的命名保存点。
connection¶ -- 一 Connection
.
name¶ -- 保存点名称。
do_rollback
(dbapi_connection)¶提供 connection.rollback()
,给定DB-API连接。
dbapi_connection¶ -- DBAPI连接,通常在 ConnectionFairy
.
do_rollback_to_savepoint
(connection, name)¶回滚到命名保存点的连接。
connection¶ -- 一 Connection
.
name¶ -- 保存点名称。
do_rollback_twophase
(connection, xid, is_prepared=True, recover=False)¶在给定连接上回滚两阶段事务。
connection¶ -- 一 Connection
.
xid¶ -- XID
is_prepared¶ -- 不论是否 TwoPhaseTransaction.prepare()
被叫来。
recover¶ -- 如果传递了恢复标志。
do_savepoint
(connection, name)¶创建具有给定名称的保存点。
connection¶ -- 一 Connection
.
name¶ -- 保存点名称。
engine_created
(engine)¶在返回决赛前调用了一个方便挂钩 Engine
.
如果方言返回的类与 get_dialect_cls()
方法,然后在两个类上调用钩子,首先在由 get_dialect_cls()
方法,然后在调用方法的类上。
方言和/或包装机应使用钩子将特殊事件应用于引擎或其组件。特别是,它允许方言包装类应用方言级别的事件。
1.0.3 新版功能.
get_check_constraints
(connection, table_name, schema=None, **kw)¶返回有关签入约束的信息 table_name .
给定字符串 table_name 和可选字符串 schema ,将检查约束信息作为具有以下键的dict列表返回:
检查约束的名称
检查约束的SQL表达式
传递给方言的get_check_constraints()方法的其他选项。
1.1.0 新版功能.
get_columns
(connection, table_name, schema=None, **kw)¶返回有关中列的信息 table_name .
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,以字典列表的形式返回列信息,其中包含以下键:
列的名称
[sqlalchemy.types#TypeEngine]
布尔
列的默认值
布尔
“maxValue”:int,“nominValue”:bool,“nomaxValue”:bool,“cycle”:bool,“cache”:int,“order”:bool_
可能存在其他列属性。
get_dialect_cls
(url)¶给定一个URL,返回 Dialect
会用到的。
这是一个钩子,它允许外部插件围绕现有方言提供功能,方法是允许基于入口点从URL加载插件,然后插件返回要使用的实际方言。
默认情况下,这只返回cls。
1.0.3 新版功能.
get_foreign_keys
(connection, table_name, schema=None, **kw)¶返回有关中的外键的信息 table_name .
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,将外键信息作为带有这些键的dict列表返回:
约束的名称
构成外键的列名列表
引用的架构的名称
引用表的名称
引用表中与受约束的列对应的列名称列表
get_indexes
(connection, table_name, schema=None, **kw)¶返回有关中索引的信息 table_name .
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,将索引信息作为具有以下键的字典列表返回:
索引的名称
按顺序排列的列名列表
布尔
get_isolation_level
(dbapi_conn)¶给定DBAPI连接,返回其隔离级别。
使用时 Connection
对象,可以使用 Connection.connection
访问器。
请注意,这是一个方言级别的方法,用作 Connection
和 Engine
隔离级设施;对于大多数典型的用例,这些API应该是首选的。
参见
Connection.get_isolation_level()
-查看当前级别
Connection.default_isolation_level
-查看默认级别
Connection.execution_options.isolation_level
-设置 Connection
隔离级别
create_engine.isolation_level
-设置 Engine
隔离级别
get_pk_constraint
(connection, table_name, schema=None, **kw)¶返回有关表“名称”的主键约束的信息。
给出了一个 Connection
一个字符串 table_name 和可选字符串 schema ,将主键信息作为具有以下键的字典返回:
构成主键的列名列表
主键约束的可选名称。
get_primary_keys
(connection, table_name, schema=None, **kw)¶返回有关中主键的信息 table_name .
0.8 版后已移除: 这个 Dialect.get_primary_keys()
方法已弃用,将在将来的版本中删除。请参阅 Dialect.get_pk_constraint()
方法。
get_table_comment
(connection, table_name, schema=None, **kw)¶返回由标识的表的“注释” table_name .
给定字符串 table_name 和可选字符串 schema ,将表注释信息作为具有此键的字典返回:
注释的文本
加薪 NotImplementedError
不支持评论的方言。
1.2 新版功能.
get_table_names
(connection, schema=None, **kw)¶返回表名列表 schema .
get_temp_table_names
(connection, schema=None, **kw)¶如果基础后端支持,则返回给定连接上的临时表名列表。
get_temp_view_names
(connection, schema=None, **kw)¶如果基础后端支持,则返回给定连接上的临时视图名称列表。
get_unique_constraints
(connection, table_name, schema=None, **kw)¶返回有关中唯一约束的信息 table_name .
给定字符串 table_name 和可选字符串 schema ,返回唯一约束信息作为具有以下键的dict列表:
唯一约束的名称
按顺序排列的列名列表
其他选项传递给方言的get_unique_constraints()方法。
0.9.0 新版功能.
get_view_definition
(connection, view_name, schema=None, **kw)¶返回视图定义。
给出了一个 Connection
一个字符串 view_name 和可选字符串 schema ,返回视图定义。
get_view_names
(connection, schema=None, **kw)¶返回数据库中所有可用视图名称的列表。
可选,从非默认架构中检索名称。
has_sequence
(connection, sequence_name, schema=None)¶检查数据库中是否存在特定序列。
给出了一个 Connection
对象和字符串 sequence_name ,如果给定序列存在于数据库中,则返回true,否则返回false。
has_table
(connection, table_name, schema=None)¶检查数据库中是否存在特定表。
给出了一个 Connection
对象和字符串 table_name ,如果给定的表(可能在指定的 schema )存在于数据库中,否则为false。
initialize
(connection)¶在有连接的方言的战略性创建过程中调用。
允许方言根据服务器版本信息或其他属性配置选项。
这里传递的连接是一个具有完整功能的sqlAlchemy连接对象。
应该通过super()调用基方言的initialize()方法。
is_disconnect
(e, connection, cursor)¶如果给定的db-api错误指示无效连接,则返回true
normalize_name
(name)¶如果检测到给定名称不区分大小写,则将其转换为小写。
此方法仅在方言定义需要u name_normalize=true时使用。
reflecttable
(connection, table, include_columns, exclude_columns, resolve_fks)¶从数据库加载表说明。
给出了一个 Connection
和A Table
对象,从数据库中反映其列和属性。
此方法的实现由 DefaultDialect.reflecttable()
,利用 Inspector
以检索列信息。
方言应 not 寻求实现此方法,并应改为实现单独的模式检查操作,例如 Dialect.get_columns()
, Dialect.get_pk_constraint()
等。
reset_isolation_level
(dbapi_conn)¶给定DBAPI连接,将其隔离恢复为默认值。
请注意,这是一个方言级别的方法,用作 Connection
和 Engine
隔离级设施;对于大多数典型的用例,这些API应该是首选的。
参见
Connection.get_isolation_level()
-查看当前级别
Connection.default_isolation_level
-查看默认级别
Connection.execution_options.isolation_level
-设置 Connection
隔离级别
create_engine.isolation_level
-设置 Engine
隔离级别
set_isolation_level
(dbapi_conn, level)¶给定DBAPI连接,设置其隔离级别。
请注意,这是一个方言级别的方法,用作 Connection
和 Engine
隔离级设施;对于大多数典型的用例,这些API应该是首选的。
参见
Connection.get_isolation_level()
-查看当前级别
Connection.default_isolation_level
-查看默认级别
Connection.execution_options.isolation_level
-设置 Connection
隔离级别
create_engine.isolation_level
-设置 Engine
隔离级别
type_descriptor
(typeobj)¶将泛型类型转换为方言特定类型。
方言类通常使用 types.adapt_type()
在“类型”模块中执行此操作。
已缓存返回的结果 每方言类 因此不能包含方言实例状态。
sqlalchemy.engine.default.
DefaultExecutionContext
¶基地: sqlalchemy.engine.interfaces.ExecutionContext
create_cursor
()¶返回从此ExecutionContext的连接生成的新光标。
有些方言可能希望更改connection.cursor()的行为,例如postgresql,它可能返回pg“server-side”光标。
current_parameters
= None¶应用于当前行的参数字典。
此属性仅在用户定义的默认生成函数的上下文中可用,例如,如中所述 上下文相关的默认函数 . 它由一个字典组成,其中包括作为insert或update语句一部分的每个列/值对的条目。字典的键将是每个 Column
,通常与名称同义。
请注意 DefaultExecutionContext.current_parameters
属性不适用于 Insert.values()
方法。这个 DefaultExecutionContext.get_current_parameters()
应首选方法。
get_current_parameters
(isolate_multiinsert_groups=True)¶返回应用于当前行的参数字典。
此方法只能在用户定义的默认生成函数的上下文中使用,例如,如中所述 上下文相关的默认函数 . 调用时,将返回一个字典,其中包含作为insert或update语句一部分的每个列/值对的条目。字典的键将是每个 Column
,通常与名称同义。
isolate_multiinsert_groups=True¶ -- 指示使用创建的多值插入构造 Insert.values()
应该通过只返回当前列默认调用本地的参数子集来处理。什么时候? False
,返回语句的原始参数,包括多值插入时使用的命名约定。
1.2 新版功能: 补充 DefaultExecutionContext.get_current_parameters()
它提供了比现有功能更多的功能 DefaultExecutionContext.current_parameters
属性。
get_lastrowid
()¶插入后返回self.cursor.lastrowid或等效项。
这可能涉及调用特殊的光标函数、在光标上发出一个新的select(或一个新的),或返回在post_exec()中计算的存储值。
只对支持“隐式”主键生成、将preexecute_autoincrement_sequences设置为false以及没有显式ID值绑定到语句的方言调用此函数。
该函数在post_exec()之后、提交事务或生成resultProxy之前调用一次。如果post-exec()方法将值赋给 self._lastrowid ,该值用于代替调用get_lastrowid()。
注意这个方法是 not 相当于 lastrowid
方法对 ResultProxy
,它是DBAPI的直接代理 lastrowid
在所有情况下都是访问器。
get_result_processor
(type_, colname, coltype)¶返回cursor.description中存在的给定类型的“结果处理器”。
这有一个默认实现,方言可以为上下文敏感的结果类型处理重写该实现。
handle_dbapi_exception
(e)¶接收执行、结果获取等时发生的DBAPI异常。
lastrow_has_defaults
()¶如果最后一个插入或更新行包含内联或数据库端默认值,则返回true。
post_exec
()¶在已编译语句执行后调用。
如果已编译语句传递到此ExecutionContext,则 last_insert_ids , last_inserted_params 等。此方法完成后,数据成员应可用。
pre_exec
()¶在执行已编译语句之前调用。
如果已编译语句传递到此ExecutionContext,则 statement 和 parameters 此语句完成后,必须初始化DataMembers。
set_input_sizes
(translate=None, include_types=None, exclude_types=None)¶给定一个光标和子句参数,调用 setinputsizes()
在光标上,使用bind参数的db-api类型 TypeEngine
对象。
这个方法只由那些需要它的方言调用,目前是cx-oracle。
should_autocommit_text
(statement)¶分析给定的文本语句,如果引用“可提交”语句,则返回true
sqlalchemy.engine.interfaces.
ExecutionContext
¶对应于单个执行的方言的信使对象。
ExecutionContext应具有以下数据成员:
连接对象,默认值生成器可以自由使用该对象来执行SQL。此连接应引用根连接的相同基础连接/事务性资源。
连接对象,它是此ExecutionContext的源。此连接可能具有close_,其结果设置为true,在这种情况下,它只能使用一次。
创建此ExecutionContext的方言。
从连接处获取的DB-API光标,
如果传递给构造函数,则执行sqlAlchemy.engine.base.compiled对象,
要执行的语句的字符串版本。传递给构造函数,或者必须在pre_exec()完成时从sql.compiled对象创建。
绑定传递给execute()方法的参数。对于编译语句,这是一个字典或字典列表。对于文本语句,其格式应适合方言的参数样式(即非位置的dict或dict列表,位置的列表或列表/元组列表)。
如果语句是insert,则为true。
如果语句是更新的,则为true。
如果该语句是“可提交”语句,则为true。
为其触发客户端默认值的列对象列表。适用于插入和更新。
为其触发服务器端默认值或内联SQL表达式值的列对象列表。适用于插入和更新。
create_cursor
()¶返回从此ExecutionContext的连接生成的新光标。
有些方言可能希望更改connection.cursor()的行为,例如postgresql,它可能返回pg“server-side”光标。
exception
= None¶此ExecutionContext尝试执行语句时捕获的DBAPI级别异常。
此属性仅在 ConnectionEvents.dbapi_error()
事件。
0.9.7 新版功能.
get_rowcount
()¶返回DBAPI cursor.rowcount
值,或者在某些情况下是解释值。
见 ResultProxy.rowcount
有关详细信息。
handle_dbapi_exception
(e)¶接收执行、结果获取等时发生的DBAPI异常。
is_disconnect
= None¶当此ExecutionContext尝试执行语句时捕获DBAPI级别异常时,布尔标志设置为true或false。
此属性仅在 ConnectionEvents.dbapi_error()
事件。
0.9.7 新版功能.
lastrow_has_defaults
()¶如果最后一个插入或更新行包含内联或数据库端默认值,则返回true。
post_exec
()¶在已编译语句执行后调用。
如果已编译语句传递到此ExecutionContext,则 last_insert_ids , last_inserted_params 等。此方法完成后,数据成员应可用。
pre_exec
()¶在执行已编译语句之前调用。
如果已编译语句传递到此ExecutionContext,则 statement 和 parameters 此语句完成后,必须初始化DataMembers。
result
()¶返回与此ExecutionContext对应的结果对象。
返回ResultProxy。
should_autocommit_text
(statement)¶分析给定的文本语句,如果引用“可提交”语句,则返回true
sqlalchemy.log.
Identified
¶sqlalchemy.sql.compiler.
IdentifierPreparer
(dialect, initial_quote='"', final_quote=None, escape_quote='"', quote_case_sensitive_collations=True, omit_schema=False)¶根据选项处理标识符的引用和大小写折叠。
__init__
(dialect, initial_quote='"', final_quote=None, escape_quote='"', quote_case_sensitive_collations=True, omit_schema=False)¶构建新的 IdentifierPreparer
对象。
以分隔标识符开头的字符。
以分隔标识符结尾的字符。默认为 initial_quote .
防止预挂架构名称。对于不支持模式的数据库很有用。
format_column
(column, use_table=False, name=None, table_name=None, use_schema=False)¶准备带引号的列名。
format_schema
(name)¶准备引用的架构名称。
format_table
(table, use_schema=True, name=None)¶准备带引号的表和架构名称。
format_table_seq
(table, use_schema=True)¶将表名和架构格式化为元组。
quote
(ident, force=None)¶有条件地引用标识符。
如果标识符是保留字、包含必要的引号字符或是 quoted_name
其中包括 quote
设置为 True
.
子类可以重写此项,为标识符名称提供与数据库相关的引用行为。
ident¶ -- 字符串识别码
force¶ -- 未使用的已弃用::0.9 IdentifierPreparer.quote.force
参数已弃用,将在将来的版本中删除。此标志对 IdentifierPreparer.quote()
方法;请参阅 quoted_name
.
quote_identifier
(value)¶引用标识符。
子类应重写此项以提供与数据库相关的引用行为。
quote_schema
(schema, force=None)¶有条件地引用架构名称。
如果名称是保留字、包含必要的引号字符或是 quoted_name
其中包括 quote
设置为 True
.
子类可以重写此内容,为模式名提供与数据库相关的引用行为。
schema¶ -- 字符串架构名称
force¶ -- 未使用的已弃用::0.9 IdentifierPreparer.quote_schema.force
参数已弃用,将在将来的版本中删除。此标志对 IdentifierPreparer.quote()
方法;请参阅 quoted_name
.
unformat_identifiers
(identifiers)¶将类似“schema.table.column”的字符串解包到组件中。
validate_sql_phrase
(element, reg)¶关键字序列筛选器。
用于表示关键字序列的元素的筛选器,如“初始”、“初始延迟”等。不应出现特殊字符。
1.3 新版功能.
sqlalchemy.sql.compiler.
SQLCompiler
(dialect, statement, column_keys=None, inline=False, **kwargs)¶基地: sqlalchemy.sql.compiler.Compiled
默认实现 Compiled
.
编译 ClauseElement
对象转换为SQL字符串。
__init__
(dialect, statement, column_keys=None, inline=False, **kwargs)¶构建新的 SQLCompiler
对象。
ansi_bind_rules
= False¶SQL 92不允许在select的columns子句中使用bind参数,也不允许类似这样的不明确表达式?=?”。如果目标驱动程序/db强制执行此项,则编译器子类可以将此标志设置为false。
construct_params
(params=None, _group_number=None, _check=True)¶返回绑定参数键和值的字典
contains_expanding_parameters
= False¶如果遇到bindparam(…,expanding=true),则为true。
这些需要在执行字符串语句之前转换。
default_from
()¶当select语句没有froms且不追加froms子句时调用。
让甲骨文有机会 FROM DUAL
到字符串输出。
delete_extra_from_clause
(update_stmt, from_table, extra_froms, from_hints, **kw)¶提供一个钩子来重写delete..from子句的生成。
这可用于实现删除。例如,使用。
mysql和mssql会覆盖这个。
get_select_precolumns
(select, **kw)¶在构建时调用 SELECT
语句,位置在列列表之前。
group_by_clause
(select, **kw)¶允许方言自定义分组方式。
isdelete
= False¶类级别默认值,可以在实例级别设置,以定义此编译实例是否表示插入/更新/删除
order_by_clause
(select, **kw)¶允许方言自定义排序方式。
params
¶对于存在的值,返回嵌入到此编译对象中的绑定参数字典。
render_literal_value
(value, type_)¶将绑定参数的值呈现为带引号的文本。
这用于不接受目标驱动程序/数据库上绑定参数的语句部分。
这应该通过使用DBAPI的引用服务的子类实现。
render_table_with_column_in_update_from
= False¶设置为true classwide以指示多表更新语句中的set子句应使用表名限定列(即仅限mysql)
returning
= None¶如果语句是CRUD,则保留列的“返回”集合,并隐式或显式定义返回列
returning_precedes_values
= False¶设置为true classwide以在values或where子句(即mssql)之前生成返回子句
sql_compiler
¶返回能够处理SQL表达式的已编译。
如果这个编译器是一个,它可能只返回“self”。
update_from_clause
(update_stmt, from_table, extra_froms, from_hints, **kw)¶提供一个钩子来重写update..from子句的生成。
mysql和mssql会覆盖这个。
update_limit_clause
(update_stmt)¶为MySQL提供一个钩子,以便向更新添加限制
update_tables_clause
(update_stmt, from_table, extra_froms, **kw)¶提供一个钩子来重写update语句中的初始table子句。
MySQL会覆盖这个。
sqlalchemy.sql.compiler.
StrSQLCompiler
(dialect, statement, column_keys=None, inline=False, **kwargs)¶基地: sqlalchemy.sql.compiler.SQLCompiler
A SQLCompiler
允许少量非标准SQL功能呈现为字符串值的子类。
这个 StrSQLCompiler
每当直接对核心表达式元素进行字符串化而不调用 ClauseElement.compile()
方法。它可以呈现一组有限的非标准SQL构造,以帮助基本的字符串化,但是对于更具体的自定义或方言特定的SQL构造,有必要使用 ClauseElement.compile()
直接。
delete_extra_from_clause
(update_stmt, from_table, extra_froms, from_hints, **kw)¶提供一个钩子来重写delete..from子句的生成。
这可用于实现删除。例如,使用。
mysql和mssql会覆盖这个。
update_from_clause
(update_stmt, from_table, extra_froms, from_hints, **kw)¶提供一个钩子来重写update..from子句的生成。
mysql和mssql会覆盖这个。