SqlAlchemy 2.0 中文文档(三十九)(2)

简介: SqlAlchemy 2.0 中文文档(三十九)

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 – 模式名称。如果schemaNone,则使用数据库的默认模式,否则搜索命名模式。如果数据库不支持命名模式,则如果未将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.ReflectedIdentitybuiltins.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.ReflectedIndexbuiltins.dict

attribute column_names: List[str | None]

索引引用的列名。如果列表中的元素是表达式,则为None,并在expressions列表中返回。

attribute column_sorting: NotRequired[Dict[str, Tuple[str]]]

可选字典,将列名或表达式映射到排序关键字元组,可能包括ascdescnulls_firstnulls_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

相关文章
|
2月前
|
关系型数据库 数据库连接 数据库
SqlAlchemy 2.0 中文文档(三十九)(1)
SqlAlchemy 2.0 中文文档(三十九)
28 0
|
2月前
|
SQL 存储 关系型数据库
SqlAlchemy 2.0 中文文档(三十四)(4)
SqlAlchemy 2.0 中文文档(三十四)
33 1
|
2月前
|
SQL 关系型数据库 数据库
SqlAlchemy 2.0 中文文档(三十四)(5)
SqlAlchemy 2.0 中文文档(三十四)
23 0
|
2月前
|
关系型数据库 MySQL 数据库
SqlAlchemy 2.0 中文文档(三十九)(5)
SqlAlchemy 2.0 中文文档(三十九)
18 0
|
2月前
|
关系型数据库 MySQL 数据库
SqlAlchemy 2.0 中文文档(三十九)(3)
SqlAlchemy 2.0 中文文档(三十九)
14 0
|
2月前
|
缓存 数据库连接 数据库
SqlAlchemy 2.0 中文文档(三十九)(4)
SqlAlchemy 2.0 中文文档(三十九)
16 0
|
2月前
|
SQL 存储 关系型数据库
SqlAlchemy 2.0 中文文档(三十四)(1)
SqlAlchemy 2.0 中文文档(三十四)
24 0
|
2月前
|
SQL 关系型数据库 数据库
SqlAlchemy 2.0 中文文档(三十四)(2)
SqlAlchemy 2.0 中文文档(三十四)
20 0
|
2月前
|
SQL 关系型数据库 数据库
SqlAlchemy 2.0 中文文档(三十四)(3)
SqlAlchemy 2.0 中文文档(三十四)
29 0
|
2月前
|
关系型数据库 数据库连接 API
SqlAlchemy 2.0 中文文档(四十五)(3)
SqlAlchemy 2.0 中文文档(四十五)
40 0