SqlAlchemy 2.0 中文文档(三十九)(1)https://developer.aliyun.com/article/1562595
参数:
schema– 字符串模式名称;如果省略,使用数据库连接的默认模式。对于特殊引用,请使用quoted_name。filter_names– 可选择仅返回列出的对象的信息。kind– 一个ObjectKind,指定要反映的对象类型。默认为ObjectKind.TABLE。scope– 一个ObjectScope,指定是否应反映默认、临时或任何表的选项。默认为ObjectScope.DEFAULT。**kw– 传递给特定方言实现的额外关键字参数。有关更多信息,请参阅正在使用的方言的文档。
返回:
一个字典,其中键是两元组模式、表名,值是具有表选项的字典。每个字典中返回的键取决于正在使用的方言。每个键都以方言名称为前缀。如果未提供模式,则模式为None。
版本 2.0 中的新功能。
另请参见
Inspector.get_table_options()
method get_multi_unique_constraints(schema: str | None = None, filter_names: Sequence[str] | None = None, kind: ObjectKind = ObjectKind.TABLE, scope: ObjectScope = ObjectScope.DEFAULT, **kw: Any) → Dict[TableKey, List[ReflectedUniqueConstraint]]
返回给定模式中所有表中唯一约束的信息。
可通过传递要用于filter_names的名称来过滤表。
对于每个表,值是一个ReflectedUniqueConstraint列表。
参数:
schema– 字符串模式名称;如果省略,使用数据库连接的默认模式。对于特殊引用,请使用quoted_name。filter_names– 可选择仅返回列出的对象的信息。kind– 一个ObjectKind,指定要反映的对象类型。默认为ObjectKind.TABLE。scope– 一个ObjectScope,指定是否应反映默认、临时或任何表的约束。默认为ObjectScope.DEFAULT。**kw– 传递给特定方言实现的额外关键字参数。有关更多信息,请参阅正在使用的方言的文档。
返回:
一个字典,其中键是两元组模式、表名,值是字典列表,每个表示唯一约束的定义。如果未提供模式,则模式为None。
版本 2.0 中的新功能。
另请参见
Inspector.get_unique_constraints()
method get_pk_constraint(table_name: str, schema: str | None = None, **kw: Any) → ReflectedPrimaryKeyConstraint
返回有关table_name中主键约束的信息。
给定字符串 table_name,和可选的字符串模式,作为 ReflectedPrimaryKeyConstraint 返回主键信息。
参数:
table_name– 表的字符串名称。对于特殊引用,请使用quoted_name。schema– 字符串模式名称;如果省略,则使用数据库连接的默认模式。对于特殊引用,请使用quoted_name。**kw– 传递给特定方言实现的附加关键字参数。有关更多信息,请参阅使用的方言的文档。
返回:
代表主键约束定义的字典。
另请参阅
Inspector.get_multi_pk_constraint()
method get_schema_names(**kw: Any) → List[str]
返回所有模式名称。
参数:
**kw – 传递给特定方言实现的附加关键字参数。有关更多信息,请参阅使用的方言的文档。
method get_sequence_names(schema: str | None = None, **kw: Any) → List[str]
返回模式中的所有序列名称。
参数:
schema– 可选,从非默认模式检索名称。对于特殊引用,请使用quoted_name。**kw– 传递给特定方言实现的附加关键字参数。有关更多信息,请参阅使用的方言的文档。
method get_sorted_table_and_fkc_names(schema: str | None = None, **kw: Any) → List[Tuple[str | None, List[Tuple[str, str | None]]]]
返回特定模式中引用的表和外键约束名称的依赖排序。
这将生成 (tablename, [(tname, fkname), (tname, fkname), ...]) 的 2 元组,其中包含按创建顺序分组的表名和未被检测为属于循环的外键约束名称。最后一个元素将是 (None, [(tname, fkname), (tname, fkname), ..]),其中包含剩余的外键约束名称,这些名称需要根据表之间的依赖关系在事后进行单独的创建步骤。
参数:
schema– 要查询的模式名称,如果不是默认模式。**kw– 传递给特定方言实现的附加关键字参数。有关更多信息,请参阅使用的方言的文档。
另请参阅
Inspector.get_table_names()
sort_tables_and_constraints() - 与已给定的 MetaData 类似的方法。
method get_table_comment(table_name: str, schema: str | None = None, **kw: Any) → ReflectedTableComment
返回 table_name 的表注释信息。
给定字符串table_name和可选字符串schema,将表注释信息作为ReflectedTableComment返回。
对于不支持注释的方言,引发NotImplementedError。
参数:
table_name– 表的字符串名称。对于特殊引用,请使用quoted_name。schema– 字符串模式名称;如果省略,则使用数据库连接的默认模式。对于特殊引用,请使用quoted_name。**kw– 传递给特定方言实现的额外关键字参数。有关更多信息,请参阅正在使用的方言的文档。
返回:
一个字典,带有表注释。
自版本 1.2 新增。
另请参阅
Inspector.get_multi_table_comment()
method get_table_names(schema: str | None = None, **kw: Any) → List[str]
返回特定模式内的所有表名。
名称预期仅为实际表,而不是视图。视图使用Inspector.get_view_names()和/或Inspector.get_materialized_view_names()方法返回。
参数:
schema– 模式名称。如果schema为None,则使用数据库的默认模式,否则搜索命名模式。如果数据库不支持命名模式,则如果未将schema作为None传递,则行为未定义。对于特殊引用,请使用quoted_name。**kw– 传递给特定方言实现的额外关键字参数。有关更多信息,请参阅正在使用的方言的文档。
另请参阅
Inspector.get_sorted_table_and_fkc_names()
MetaData.sorted_tables
method get_table_options(table_name: str, schema: str | None = None, **kw: Any) → Dict[str, Any]
返回给定名称的表创建时指定的选项的字典。
目前包括适用于 MySQL 和 Oracle 表的某些选项。
参数:
table_name– 表的字符串名称。对于特殊引用,请使用quoted_name。schema– 字符串模式名称;如果省略,则使用数据库连接的默认模式。要进行特殊引用,请使用quoted_name。**kw– 传递给方言特定实现的附加关键字参数。有关更多信息,请参阅正在使用的方言的文档。
返回:
一个包含表选项的字典。返回的键取决于使用的方言。每个键都以方言名称为前缀。
另请参阅
Inspector.get_multi_table_options()
method get_temp_table_names(**kw: Any) → List[str]
返回当前绑定的临时表名称列表。
大多数方言都不支持此方法;目前只有 Oracle、PostgreSQL 和 SQLite 实现了它。
参数:
**kw – 传递给方言特定实现的附加关键字参数。有关更多信息,请参阅正在使用的方言的文档。
method get_temp_view_names(**kw: Any) → List[str]
返回当前绑定的临时视图名称列表。
大多数方言都不支持此方法;目前只有 PostgreSQL 和 SQLite 实现了它。
参数:
**kw – 传递给方言特定实现的附加关键字参数。有关更多信息,请参阅正在使用的方言的文档。
method get_unique_constraints(table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedUniqueConstraint]
返回table_name中唯一约束的信息。
给定一个字符串table_name和一个可选的字符串模式,将唯一约束信息返回为一个ReflectedUniqueConstraint的列表。
参数:
table_name– 表名称字符串。要进行特殊引用,请使用quoted_name。schema– 字符串模式名称;如果省略,则使用数据库连接的默认模式。要进行特殊引用,请使用quoted_name。**kw– 传递给方言特定实现的附加关键字参数。有关更多信息,请参阅正在使用的方言的文档。
返回:
一个字典列表,每个都代表唯一约束的定义。
另请参阅
Inspector.get_multi_unique_constraints()
method get_view_definition(view_name: str, schema: str | None = None, **kw: Any) → str
返回名为view_name的普通或物化视图的定义。
参数:
view_name– 视图的名称。schema– 可选,从非默认模式检索名称。要进行特殊引用,请使用quoted_name。**kw– 传递给方言特定实现的附加关键字参数。有关更多信息,请参阅正在使用的方言的文档。
method get_view_names(schema: str | None = None, **kw: Any) → List[str]
返回模式中的所有非材料化视图名称。
参数:
schema– 可选,从非默认模式中检索名称。对于特殊引用,请使用quoted_name。**kw– 传递给方言特定实现的其他关键字参数。有关更多信息,请参阅正在使用的方言的文档。
从版本 2.0 开始更改:对于以前在此列表中包括材料化视图名称的方言(当前为 PostgreSQL),此方法不再返回材料化视图的名称。应改为使用 Inspector.get_materialized_view_names() 方法。
另请参阅
Inspector.get_materialized_view_names()
method has_index(table_name: str, index_name: str, schema: str | None = None, **kw: Any) → bool
检查数据库中特定索引名称的存在。
参数:
table_name– 索引所属表的名称index_name– 要检查的索引名称schema– 查询的模式名称,如果不是默认模式。**kw– 传递给方言特定实现的其他关键字参数。有关更多信息,请参阅正在使用的方言的文档。
版本 2.0 中的新功能。
method has_schema(schema_name: str, **kw: Any) → bool
如果后端具有给定名称的模式,则返回 True。
参数:
schema_name– 要检查的模式名称**kw– 传递给方言特定实现的其他关键字参数。有关更多信息,请参阅正在使用的方言的文档。
版本 2.0 中的新功能。
method has_sequence(sequence_name: str, schema: str | None = None, **kw: Any) → bool
如果后端具有给定名称的序列,则返回 True。
参数:
sequence_name– 要检查的序列名称schema– 查询的模式名称,如果不是默认模式。**kw– 传递给方言特定实现的其他关键字参数。有关更多信息,请参阅正在使用的方言的文档。
版本 1.4 中的新功能。
method has_table(table_name: str, schema: str | None = None, **kw: Any) → bool
如果后端具有给定名称的表、视图或临时表,则返回 True。
参数:
table_name– 要检查的表名称schema– 查询的模式名称,如果不是默认模式。**kw– 传递给方言特定实现的其他关键字参数。有关更多信息,请参阅正在使用的方言的文档。
从版本 1.4 开始:- Inspector.has_table() 方法替换了 Engine.has_table() 方法。
从版本 2.0 开始更改:Inspector.has_table() 现在正式支持检查额外的类似表的对象:
- 任何类型的视图(普通或材料化)
- 任何类型的临时表
以前,这两个检查没有正式指定,并且不同的方言在行为上会有所不同。方言测试套件现在包括所有这些对象类型的测试,并且应该由所有包含 SQLAlchemy 的方言支持。但是,第三方方言中的支持可能滞后。
attribute info_cache: Dict[Any, Any]
method reflect_table(table: Table, include_columns: Collection[str] | None, exclude_columns: Collection[str] = (), resolve_fks: bool = True, _extend_on: Set[Table] | None = None, _reflect_info: _ReflectionInfo | None = None) → None
给定一个 Table 对象,根据内省加载其内部构造。
这是大多数方言用于生成表反射的底层方法。直接用法如下:
from sqlalchemy import create_engine, MetaData, Table from sqlalchemy import inspect engine = create_engine('...') meta = MetaData() user_table = Table('user', meta) insp = inspect(engine) insp.reflect_table(user_table, None)
从版本 1.4 开始更改:从 reflecttable 更名为 reflect_table
参数:
table– 一个Table实例。include_columns– 要包含在反射过程中的字符串列名列表。如果为None,则反射所有列。
method sort_tables_on_foreign_key_dependency(consider_schemas: Collection[str | None] = (None,), **kw: Any) → List[Tuple[Tuple[str | None, str] | None, List[Tuple[Tuple[str | None, str], str | None]]]]
返回在多个模式中引用的依赖项排序的表和外键约束名称。
此方法可以与 Inspector.get_sorted_table_and_fkc_names() 进行比较,后者一次只能处理一个模式;在这里,该方法是一个通用化的方法,一次可以考虑多个模式,包括解决跨模式外键的问题。
版本 2.0 中新增。
class sqlalchemy.engine.interfaces.ReflectedColumn
表示与 Column 对象对应的反射元素的字典。
ReflectedColumn 结构是由 get_columns 方法返回的。
成员
autoincrement, comment, computed, default, dialect_options, identity, name, nullable, type
类签名
类 sqlalchemy.engine.interfaces.ReflectedColumn (builtins.dict)
attribute autoincrement: NotRequired[bool]
数据库相关的自增标志。
此标志指示列是否具有某种数据库端的 “autoincrement” 标志。在 SQLAlchemy 中,其他类型的列也可以充当 “autoincrement” 列,而不一定在它们身上具有这样的标志。
有关 “autoincrement” 的更多背景信息,请参阅 Column.autoincrement。
attribute comment: NotRequired[str | None]
如果存在,为列添加注释。只有一些方言会返回此键。
attribute computed: NotRequired[ReflectedComputed]
指示此列由数据库计算。只有一些方言会返回此键。
版本 1.3.16 中新增:- 增加对计算反射的支持。
attribute default: str | None
列默认表达式作为 SQL 字符串
attribute dialect_options: NotRequired[Dict[str, Any]]
检测到此反射对象的附加方言特定选项
attribute identity: NotRequired[ReflectedIdentity]
指示此列为 IDENTITY 列。只有一些方言会返回此键。
版本 1.4 中新增:- 增加对标识列反射的支持。
attribute name: str
列名
attribute nullable: bool
如果列为 NULL 或 NOT NULL,则为布尔标志
attribute type: TypeEngine[Any]
列类型表示为TypeEngine 实例。
class sqlalchemy.engine.interfaces.ReflectedComputed
表示计算列的反射元素,对应于Computed 结构。
ReflectedComputed 结构是 ReflectedColumn 结构的一部分,由 Inspector.get_columns() 方法返回。
成员
persisted,sqltext
类签名
类sqlalchemy.engine.interfaces.ReflectedComputed (builtins.dict)
attribute persisted: NotRequired[bool]
指示值是存储在表中还是按需计算
attribute sqltext: str
用于生成此列的表达式,返回为字符串 SQL 表达式
class sqlalchemy.engine.interfaces.ReflectedCheckConstraint
字典表示反射元素,对应于CheckConstraint。
ReflectedCheckConstraint 结构由 Inspector.get_check_constraints() 方法返回。
成员
dialect_options,sqltext
类签名
类sqlalchemy.engine.interfaces.ReflectedCheckConstraint (builtins.dict)
attribute dialect_options: NotRequired[Dict[str, Any]]
检测到此检查约束的附加方言特定选项
版本 1.3.8 中新增。
attribute sqltext: str
检查约束的 SQL 表达式
class sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint
字典表示对应于 ForeignKeyConstraint 的反射元素。
ReflectedForeignKeyConstraint 结构是由 Inspector.get_foreign_keys() 方法返回的。
成员
constrained_columns, options, referred_columns, referred_schema, referred_table
类签名
类sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint (builtins.dict)
attribute constrained_columns: List[str]
构成外键的本地列名称
attribute options: NotRequired[Dict[str, Any]]
这个外键约束检测到了额外的选项
attribute referred_columns: List[str]
对应于 constrained_columns 的被引用列名称
attribute referred_schema: str | None
被引用表的架构名称
attribute referred_table: str
被引用表的名称
class sqlalchemy.engine.interfaces.ReflectedIdentity
表示列的反射 IDENTITY 结构,对应于 Identity 结构。
ReflectedIdentity 结构是 ReflectedColumn 结构的一部分,由 Inspector.get_columns() 方法返回。
成员
always, cache, cycle, increment, maxvalue, minvalue, nomaxvalue, nominvalue, on_null, order, start
类签名
类sqlalchemy.engine.interfaces.ReflectedIdentity(builtins.dict)
attribute always: bool
身份列的类型
attribute cache: int | None
预先计算的序列中的未来值的数量。
attribute cycle: bool
允许序列在达到最大值或最小值时环绕。
attribute increment: int
序列的增量值
attribute maxvalue: int
序列的最大值。
attribute minvalue: int
序列的最小值。
attribute nomaxvalue: bool
没有序列的最大值。
attribute nominvalue: bool
没有序列的最小值。
attribute on_null: bool
表示 ON NULL
attribute order: bool
如果为真,则渲染 ORDER 关键字。
attribute start: int
序列的起始索引
class sqlalchemy.engine.interfaces.ReflectedIndex
表示与Index对应的反射元素的字典。
ReflectedIndex 结构由 Inspector.get_indexes() 方法返回。
成员
column_names、column_sorting、dialect_options、duplicates_constraint、expressions、include_columns、name、unique
类签名
类sqlalchemy.engine.interfaces.ReflectedIndex(builtins.dict)
attribute column_names: List[str | None]
索引引用的列名。如果列表中的元素是表达式,则为None,并在expressions列表中返回。
attribute column_sorting: NotRequired[Dict[str, Tuple[str]]]
可选字典,将列名或表达式映射到排序关键字元组,可能包括asc、desc、nulls_first、nulls_last。
新版本 1.3.5 中的内容。
attribute dialect_options: NotRequired[Dict[str, Any]]
检测到的此索引的附加方言特定选项
attribute duplicates_constraint: NotRequired[str | None]
指示此索引是否反映了具有此名称的约束
attribute expressions: NotRequired[List[str]]
组成索引的表达式。当存在时,此列表包含普通列名(也在column_names中)和表达式(在column_names中为None)。
attribute include_columns: NotRequired[List[str]]
在支持的数据库中包含在 INCLUDE 子句中的列。
自版本 2.0 起已弃用:遗留值,将被替换为index_dict["dialect_options"]["_include"]
attribute name: str | None
索引名称
attribute unique: bool
索引是否具有唯一标志
class sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint
表示与PrimaryKeyConstraint对应的反射元素的字典。
ReflectedPrimaryKeyConstraint 结构由 Inspector.get_pk_constraint() 方法返回。
成员
constrained_columns, dialect_options
类签名
类 sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint (builtins.dict)
attribute constrained_columns: List[str]
组成主键的列名
attribute dialect_options: NotRequired[Dict[str, Any]]
检测到针对此主键的其他方言特定选项
class sqlalchemy.engine.interfaces.ReflectedUniqueConstraint
表示与 UniqueConstraint 对应的反映元素的字典。
ReflectedUniqueConstraint 结构由 Inspector.get_unique_constraints() 方法返回。
成员
column_names, dialect_options, duplicates_index
类签名
类 sqlalchemy.engine.interfaces.ReflectedUniqueConstraint (builtins.dict)
attribute column_names: List[str]
组成唯一约束的列名
attribute dialect_options: NotRequired[Dict[str, Any]]
检测到针对此唯一约束的其他方言特定选项
attribute duplicates_index: NotRequired[str | None]
指示此唯一约束是否重复了具有此名称的索引
class sqlalchemy.engine.interfaces.ReflectedTableComment
表示与 Table.comment 属性对应的反映注释的字典。
ReflectedTableComment 结构由 Inspector.get_table_comment() 方法返回。
SqlAlchemy 2.0 中文文档(三十九)(3)https://developer.aliyun.com/article/1562611