Основные внутренние компоненты¶
Здесь перечислены некоторые ключевые внутренние конструкции.
Object Name | Description |
---|---|
Интерфейс адаптированного объекта соединения для поддержки протокола DBAPI. |
|
Определите различные методы передачи драйверу базы данных информации о типе связанных параметров в операторе. |
|
Представляет скомпилированное выражение SQL или DDL. |
|
протокол, представляющий соединение с базой данных PEP 249. |
|
протокол, представляющий курсор базы данных PEP 249. |
|
протокол, представляющий тип базы данных PEP 249. |
|
Реализация диалекта по умолчанию |
|
Определите поведение конкретной базы данных и комбинации DB-API. |
|
Объект мессенджера для диалекта, который соответствует одному выполнению. |
|
представляет состояние для использования при создании «расширенных» и «посткомпиляционных» связанных параметров для оператора. |
|
Обработка кавычек и сложения регистра идентификаторов на основе опций. |
|
Реализация по умолчанию |
|
Подкласс |
- class sqlalchemy.engine.BindTyping¶
Определите различные методы передачи драйверу базы данных информации о типе связанных параметров в операторе.
Добавлено в версии 2.0.
Members
Классная подпись
класс
sqlalchemy.engine.BindTyping
(enum.Enum
)-
attribute
sqlalchemy.engine.BindTyping.
NONE = 1¶ Не предпринимается никаких шагов для передачи информации о наборе текста драйверу базы данных.
Это поведение по умолчанию для таких баз данных, как SQLite, MySQL / MariaDB, SQL Server.
-
attribute
sqlalchemy.engine.BindTyping.
RENDER_CASTS = 3¶ Воспроизведение кастов или других директив в строке SQL.
Этот метод используется во всех диалектах PostgreSQL, включая asyncpg, pg8000, psycopg, psycopg2. Диалекты, реализующие этот метод, могут выбирать, какие типы данных будут явно приводиться в SQL-операторах, а какие нет.
Когда используется RENDER_CASTS, компилятор вызовет метод
SQLCompiler.render_bind_cast()
для отрисованного строкового представления каждого объектаBindParameter
, тип диалектного уровня которого задает атрибутTypeEngine.render_bind_cast
.SQLCompiler.render_bind_cast()
также используется для приведения для одной из форм запроса «insertmanyvalues», когда установленыInsertmanyvaluesSentinelOpts.USE_INSERT_FROM_SELECT
иInsertmanyvaluesSentinelOpts.RENDER_SELECT_COL_CASTS
, где приведение применяется к промежуточным столбцам, например, «INSERT INTO t (a, b, c) SELECT p0::TYP, p1::TYP, p2::TYP » «FROM (VALUES (?, ?), (?, ?), …)».Добавлено в версии 2.0.10: -
SQLCompiler.render_bind_cast()
is now used within some elements of the «insertmanyvalues» implementation.
-
attribute
sqlalchemy.engine.BindTyping.
SETINPUTSIZES = 2¶ Используйте метод pep-249 setinputsizes.
Это реализовано только для DBAPI, которые поддерживают этот метод и для которых диалект SQLAlchemy имеет соответствующую инфраструктуру, установленную для этого диалекта. Текущие диалекты включают cx_Oracle, а также опциональную поддержку SQL Server с помощью pyodbc.
При использовании setinputsizes диалекты также имеют возможность использовать метод только для определенных типов данных с помощью списков include/exclude.
При использовании SETINPUTSIZES метод
Dialect.do_set_input_sizes()
вызывается для каждого выполняемого оператора, имеющего связанные параметры.
-
attribute
- class sqlalchemy.engine.Compiled¶
Представляет скомпилированное выражение SQL или DDL.
Members
__init__(), cache_key, compile_state, construct_params(), dml_compile_state, execution_options, params, sql_compiler, state, statement, string
Метод
__str__
объектаCompiled
должен выдать фактический текст утверждения. ОбъектыCompiled
специфичны для их базового диалекта базы данных, а также могут быть или не быть специфичными для столбцов, на которые ссылается определенный набор параметров привязки. Ни в коем случае объектCompiled
не должен зависеть от фактических значений этих параметров связывания, даже если он может ссылаться на эти значения по умолчанию.-
method
sqlalchemy.engine.Compiled.
__init__(dialect: Dialect, statement: Optional[ClauseElement], schema_translate_map: Optional[SchemaTranslateMapType] = None, render_schema_translate: bool = False, compile_kwargs: Mapping[str, Any] = {})¶ Создайте новый объект
Compiled
.- Параметры:
dialect –
Dialect
для компиляции.statement –
ClauseElement
для компиляции.schema_translate_map – словарь имен схем, которые будут переведены при формировании результирующего SQL … см. также:: Перевод имен схем
compile_kwargs – дополнительные kwargs, которые будут переданы при первоначальном вызове
Compiled.process()
.
-
attribute
sqlalchemy.engine.Compiled.
cache_key: Optional[CacheKey] = None¶ CacheKey
, который был сгенерирован перед созданием этого объектаCompiled
.Используется для процедур, которым нужен доступ к исходному экземпляру
CacheKey
, сгенерированному, когда экземплярCompiled
был впервые кэширован, обычно для того, чтобы сверить исходный список объектовBindParameter
со списком для каждого утверждения, который генерируется при каждом вызове.
-
attribute
sqlalchemy.engine.Compiled.
compile_state: Optional[CompileState] = None¶ Необязательный объект
CompileState
, который поддерживает дополнительное состояние, используемое компилятором.Основные исполняемые объекты, такие как
Insert
,Update
,Delete
,Select
, будут генерировать это состояние при компиляции, чтобы вычислить дополнительную информацию об объекте. Для исполняемого объекта верхнего уровня состояние может храниться здесь, где оно также может быть применимо для обработки набора результатов.Добавлено в версии 1.4.
-
method
sqlalchemy.engine.Compiled.
construct_params(params: Optional[_CoreSingleExecuteParams] = None, extracted_parameters: Optional[Sequence[BindParameter[Any]]] = None, escape_names: bool = True) Optional[_MutableCoreSingleExecuteParams] ¶ Возвращает параметры привязки для этого скомпилированного объекта.
- Параметры:
params – dict пар строк/объектов, значения которых будут переопределять значения bind, скомпилированные в операторе.
-
attribute
sqlalchemy.engine.Compiled.
dml_compile_state: Optional[CompileState] = None¶ Необязательный
CompileState
назначается в тот же момент, когда назначается .isinsert, .isupdate или .isdelete.Обычно это будет тот же объект, что и .compile_state, за исключением случаев, подобных объекту
ORMFromStatementCompileState
.Добавлено в версии 1.4.40.
-
attribute
sqlalchemy.engine.Compiled.
execution_options: _ExecuteOptions = {}¶ Параметры выполнения, распространяемые из оператора. В некоторых случаях вложенные элементы утверждения могут изменять эти параметры.
-
attribute
sqlalchemy.engine.Compiled.
params¶ Возвращает параметры привязки для этого скомпилированного объекта.
-
attribute
sqlalchemy.engine.Compiled.
sql_compiler¶ Возвращает Compiled, способный обрабатывать выражения SQL.
Если компилятор один, то он, скорее всего, просто вернет „self“.
-
attribute
sqlalchemy.engine.Compiled.
state: CompilerState¶ описание состояния компилятора
-
attribute
sqlalchemy.engine.Compiled.
statement: Optional[ClauseElement] = None¶ Утверждение для компиляции.
-
attribute
sqlalchemy.engine.Compiled.
string: str = ''¶ Строковое представление
statement
.
-
method
- class sqlalchemy.engine.interfaces.DBAPIConnection¶
протокол, представляющий соединение с базой данных PEP 249.
Добавлено в версии 2.0.
См.также
Members
Классная подпись
класс
sqlalchemy.engine.interfaces.DBAPIConnection
(typing.Protocol
)-
attribute
sqlalchemy.engine.interfaces.DBAPIConnection.
autocommit: bool¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
close() None ¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
commit() None ¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
cursor() DBAPICursor ¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
rollback() None ¶
-
attribute
- class sqlalchemy.engine.interfaces.DBAPICursor¶
протокол, представляющий курсор базы данных PEP 249.
Добавлено в версии 2.0.
См.также
Members
arraysize, callproc(), close(), description, execute(), executemany(), fetchall(), fetchmany(), fetchone(), lastrowid, nextset(), rowcount, setinputsizes(), setoutputsize()
Классная подпись
класс
sqlalchemy.engine.interfaces.DBAPICursor
(typing.Protocol
)-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
arraysize: int¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
callproc(procname: str, parameters: Sequence[Any] = Ellipsis) Any ¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
close() None ¶
-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
description¶ Атрибут описания курсора.
См.также
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
execute(operation: Any, parameters: Optional[Union[Sequence[Any], Mapping[str, Any]]] = None) Any ¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
executemany(operation: Any, parameters: Sequence[Union[Sequence[Sequence[Any]], Sequence[Mapping[str, Any]]]]) Any ¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
fetchall() Sequence[Any] ¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
fetchmany(size: int = Ellipsis) Sequence[Any] ¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
fetchone() Optional[Any] ¶
-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
lastrowid: int¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
nextset() Optional[bool] ¶
-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
rowcount¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
setinputsizes(sizes: Sequence[Any]) None ¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
setoutputsize(size: Any, column: Any) None ¶
-
attribute
- class sqlalchemy.engine.interfaces.DBAPIType¶
протокол, представляющий тип базы данных PEP 249.
Добавлено в версии 2.0.
См.также
Type Objects - в PEP 249
Классная подпись
класс
sqlalchemy.engine.interfaces.DBAPIType
(typing.Protocol
)
- class sqlalchemy.sql.compiler.DDLCompiler¶
Members
__init__(), cache_key, compile_state, construct_params(), define_constraint_remote_table(), dml_compile_state, execution_options, params, sql_compiler, state, statement, string
Классная подпись
класс
sqlalchemy.sql.compiler.DDLCompiler
(sqlalchemy.sql.compiler.Compiled
)-
method
sqlalchemy.sql.compiler.DDLCompiler.
__init__(dialect: Dialect, statement: Optional[ClauseElement], schema_translate_map: Optional[SchemaTranslateMapType] = None, render_schema_translate: bool = False, compile_kwargs: Mapping[str, Any] = {})¶ наследуется от
sqlalchemy.sql.compiler.Compiled.__init__
методаCompiled
Создайте новый объект
Compiled
.- Параметры:
dialect –
Dialect
для компиляции.statement –
ClauseElement
для компиляции.schema_translate_map – словарь имен схем, которые будут переведены при формировании результирующего SQL … см. также:: Перевод имен схем
compile_kwargs – дополнительные kwargs, которые будут переданы при первоначальном вызове
Compiled.process()
.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
cache_key: Optional[CacheKey] = None¶ наследуется от
Compiled.cache_key
атрибутаCompiled
CacheKey
, который был сгенерирован перед созданием этого объектаCompiled
.Используется для процедур, которым нужен доступ к исходному экземпляру
CacheKey
, сгенерированному, когда экземплярCompiled
был впервые кэширован, обычно для того, чтобы сверить исходный список объектовBindParameter
со списком для каждого утверждения, который генерируется при каждом вызове.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
compile_state: Optional[CompileState] = None¶ наследуется от
Compiled.compile_state
атрибутаCompiled
Необязательный объект
CompileState
, который поддерживает дополнительное состояние, используемое компилятором.Основные исполняемые объекты, такие как
Insert
,Update
,Delete
,Select
, будут генерировать это состояние при компиляции, чтобы вычислить дополнительную информацию об объекте. Для исполняемого объекта верхнего уровня состояние может храниться здесь, где оно также может быть применимо для обработки набора результатов.Добавлено в версии 1.4.
-
method
sqlalchemy.sql.compiler.DDLCompiler.
construct_params(params: Optional[_CoreSingleExecuteParams] = None, extracted_parameters: Optional[Sequence[BindParameter[Any]]] = None, escape_names: bool = True) Optional[_MutableCoreSingleExecuteParams] ¶ Возвращает параметры привязки для этого скомпилированного объекта.
- Параметры:
params – dict пар строк/объектов, значения которых будут переопределять значения bind, скомпилированные в операторе.
-
method
sqlalchemy.sql.compiler.DDLCompiler.
define_constraint_remote_table(constraint, table, preparer)¶ Форматирование пункта удаленной таблицы в предложении CREATE CONSTRAINT.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
dml_compile_state: Optional[CompileState] = None¶ наследуется от
Compiled.dml_compile_state
атрибутаCompiled
Необязательный
CompileState
назначается в тот же момент, когда назначается .isinsert, .isupdate или .isdelete.Обычно это будет тот же объект, что и .compile_state, за исключением случаев, подобных объекту
ORMFromStatementCompileState
.Добавлено в версии 1.4.40.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
execution_options: _ExecuteOptions = {}¶ наследуется от
Compiled.execution_options
атрибутаCompiled
Параметры выполнения, распространяемые из оператора. В некоторых случаях вложенные элементы утверждения могут изменять эти параметры.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
params¶ наследуется от
Compiled.params
атрибутаCompiled
Возвращает параметры привязки для этого скомпилированного объекта.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
sql_compiler¶
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
state: CompilerState¶ описание состояния компилятора
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
statement: Optional[ClauseElement] = None¶ наследуется от
Compiled.statement
атрибутаCompiled
Утверждение для компиляции.
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
string: str = ''¶ наследуется от
Compiled.string
атрибутаCompiled
Строковое представление
statement
.
-
method
- class sqlalchemy.engine.default.DefaultDialect¶
Реализация диалекта по умолчанию
Members
bind_typing, colspecs, connect(), construct_arguments, create_connect_args(), create_xid(), cte_follows_insert, dbapi, dbapi_exception_translation_map, ddl_compiler, default_isolation_level, default_metavalue_token, default_schema_name, default_sequence_base, delete_executemany_returning, delete_returning, delete_returning_multifrom, denormalize_name(), div_is_floordiv, do_begin(), do_begin_twophase(), do_close(), do_commit(), do_commit_twophase(), do_execute(), do_execute_no_params(), do_executemany(), do_ping(), do_prepare_twophase(), do_recover_twophase(), do_release_savepoint(), do_rollback(), do_rollback_to_savepoint(), do_rollback_twophase(), do_savepoint(), do_set_input_sizes(), do_terminate(), driver, engine_config_types, engine_created(), exclude_set_input_sizes, execute_sequence_format, execution_ctx_cls, favor_returning_over_lastrowid, full_returning, get_async_dialect_cls(), get_check_constraints(), get_columns(), get_default_isolation_level(), get_dialect_cls(), get_dialect_pool_class(), get_driver_connection(), get_foreign_keys(), get_indexes(), get_isolation_level(), get_isolation_level_values(), get_materialized_view_names(), get_multi_check_constraints(), get_multi_columns(), get_multi_foreign_keys(), get_multi_indexes(), get_multi_pk_constraint(), get_multi_table_comment(), get_multi_table_options(), get_multi_unique_constraints(), get_pk_constraint(), get_schema_names(), get_sequence_names(), get_table_comment(), get_table_names(), get_table_options(), get_temp_table_names(), get_temp_view_names(), get_unique_constraints(), get_view_definition(), get_view_names(), has_index(), has_schema(), has_sequence(), has_table(), has_terminate, identifier_preparer, import_dbapi(), include_set_input_sizes, initialize(), inline_comments, insert_executemany_returning, insert_executemany_returning_sort_by_parameter_order, insert_returning, insertmanyvalues_implicit_sentinel, insertmanyvalues_max_parameters, insertmanyvalues_page_size, is_async, is_disconnect(), label_length, load_provisioning(), loaded_dbapi, max_identifier_length, name, normalize_name(), on_connect(), on_connect_url(), paramstyle, positional, preexecute_autoincrement_sequences, preparer, reflection_options, reset_isolation_level(), returns_native_bytes, sequences_optional, server_side_cursors, server_version_info, set_connection_execution_options(), set_engine_execution_options(), set_isolation_level(), statement_compiler, supports_alter, supports_comments, supports_constraint_comments, supports_default_metavalue, supports_default_values, supports_empty_insert, supports_identity_columns, supports_multivalues_insert, supports_native_boolean, supports_native_decimal, supports_native_enum, supports_native_uuid, supports_sane_multi_rowcount, supports_sane_rowcount, supports_sane_rowcount_returning, supports_sequences, supports_server_side_cursors, supports_simple_order_by_label, supports_statement_cache, tuple_in_values, type_compiler, type_compiler_cls, type_compiler_instance, type_descriptor(), update_executemany_returning, update_returning, update_returning_multifrom, use_insertmanyvalues, use_insertmanyvalues_wo_returning
Классная подпись
класс
sqlalchemy.engine.default.DefaultDialect
(sqlalchemy.engine.interfaces.Dialect
)-
attribute
sqlalchemy.engine.default.DefaultDialect.
bind_typing = 1¶ определить средства передачи информации о типе в базу данных и/или драйвер для связанных параметров.
Значения см. в разделе
BindTyping
.Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
colspecs: MutableMapping[Type[TypeEngine[Any]], Type[TypeEngine[Any]]] = {}¶ Словарь классов TypeEngine из sqlalchemy.types, сопоставленных с подклассами, которые специфичны для класса диалекта. Этот словарь находится только на уровне класса и не доступен из самого экземпляра диалекта.
-
method
sqlalchemy.engine.default.DefaultDialect.
connect(*cargs, **cparams)¶ Установите соединение, используя DBAPI этого диалекта.
По умолчанию этот метод реализуется следующим образом:
def connect(self, *cargs, **cparams): return self.dbapi.connect(*cargs, **cparams)
Параметры
*cargs, **cparams
генерируются непосредственно из методаDialect.create_connect_args()
этого диалекта.Этот метод можно использовать для диалектов, которым необходимо выполнять программные шаги для каждого соединения при получении нового соединения от DBAPI.
- Параметры:
*cargs – позиционные параметры, возвращаемые из метода
Dialect.create_connect_args()
**cparams – параметры ключевого слова, возвращаемые из метода
Dialect.create_connect_args()
.
- Результат:
соединение DBAPI, обычно из функции PEP 249 уровня модуля
.connect()
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
construct_arguments: Optional[List[Tuple[Type[Union[SchemaItem, ClauseElement]], Mapping[str, Any]]]] = None¶ наследуется от
Dialect.construct_arguments
атрибутаDialect
Необязательный набор спецификаторов аргументов для различных конструкций SQLAlchemy, обычно элементов схемы.
Чтобы реализовать, создайте серию кортежей, как в:
construct_arguments = [ (schema.Index, { "using": False, "where": None, "ops": None }) ]
Если приведенная выше конструкция установлена на диалекте PostgreSQL, то конструкция
Index
теперь будет принимать аргументы ключевых словpostgresql_using
,postgresql_where
, nadpostgresql_ops
. Любой другой аргумент, указанный конструкторуIndex
, который имеет префиксpostgresql_
, вызовет ошибкуArgumentError
.Диалект, не включающий член
construct_arguments
, не будет участвовать в системе проверки аргументов. Для такого диалекта любое имя аргумента принимается всеми участвующими конструкциями в пределах пространства имен аргументов с префиксом этого имени диалекта. Это объясняется тем, что диалекты сторонних разработчиков, которые еще не реализовали эту возможность, продолжают работать по-старому.См.также
DialectKWArgs
- реализующий базовый класс, который потребляетDefaultDialect.construct_arguments
-
method
sqlalchemy.engine.default.DefaultDialect.
create_connect_args(url)¶ Построение аргументов подключения, совместимых с DB-API.
Учитывая объект
URL
, возвращает кортеж, состоящий из(*args, **kwargs)
, подходящих для отправки непосредственно в функцию connect dbapi. Аргументы передаются в методDialect.connect()
, который затем запускает функциюconnect()
на уровне DBAPI.Метод обычно использует метод
URL.translate_connect_args()
для генерации словаря опций.По умолчанию используется:
def create_connect_args(self, url): opts = url.translate_connect_args() opts.update(url.query) return [[], opts]
- Параметры:
url – объект
URL
- Результат:
кортеж
(*args, **kwargs)
, который будет передан методуDialect.connect()
.
См.также
-
method
sqlalchemy.engine.default.DefaultDialect.
create_xid()¶ Создайте случайный идентификатор двухфазной транзакции.
Этот идентификатор будет передан в do_begin_twophase(), do_rollback_twophase(), do_commit_twophase(). Его формат не определен.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
cte_follows_insert: bool = False¶ целевая база данных, когда ей предоставляется CTE с оператором INSERT, требует, чтобы CTE находился ниже INSERT
-
attribute
sqlalchemy.engine.default.DefaultDialect.
dbapi: Optional[ModuleType]¶ Ссылка на сам объект модуля DBAPI.
Диалекты SQLAlchemy импортируют модули DBAPI с помощью метода класса
Dialect.import_dbapi()
. Это делается для того, чтобы любой модуль диалекта можно было импортировать и использовать для генерации SQL-запросов без необходимости установки фактического драйвера DBAPI. Только когдаEngine
создается с помощьюcreate_engine()
, DBAPI импортируется; в этот момент процесс создания назначает модуль DBAPI этому атрибуту.Поэтому диалекты должны реализовать
Dialect.import_dbapi()
, который будет импортировать необходимый модуль и возвращать его, а затем ссылаться наself.dbapi
в коде диалекта для того, чтобы обратиться к содержимому модуля DBAPI.Изменено в версии The: <<<Атрибут
Dialect.dbapi
используетсяDialect
исключительно в качестве ссылки на модуль DBAPI для каждого экземпляра. Предыдущий не полностью документированный метод класса.Dialect.dbapi()
устарел и заменен наDialect.import_dbapi()
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
dbapi_exception_translation_map: Mapping[str, str] = {}¶ наследуется от
Dialect.dbapi_exception_translation_map
атрибутаDialect
Словарь имен, который будет содержать в качестве значений имена исключений pep-249 («IntegrityError», «OperationalError» и т.д.), привязанные к альтернативным именам классов, для поддержки случая, когда в DBAPI есть классы исключений, которые названы не так, как на них ссылаются (например, IntegrityError = MyException). В подавляющем большинстве случаев этот словарь пуст.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
ddl_compiler¶ alias of
DDLCompiler
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_isolation_level: Optional[IsolationLevel]¶ изоляция, которая неявно присутствует при новых соединениях
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_metavalue_token: str = 'DEFAULT'¶ для синтаксиса INSERT… VALUES (DEFAULT) синтаксис, маркер, который нужно поместить в круглую скобку.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_schema_name: Optional[str] = None¶ имя схемы по умолчанию. Это значение доступно только для поддерживающих диалектов и обычно заполняется при первоначальном подключении к базе данных.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_sequence_base: int = 1¶ значение по умолчанию, которое будет отображаться как часть «START WITH» в DDL-операторе CREATE SEQUENCE.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
delete_executemany_returning: bool = False¶ диалект поддерживает DELETE…RETURNING с executemany.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
delete_returning: bool = False¶ если диалект поддерживает возврат с помощью DELETE
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
delete_returning_multifrom: bool = False¶ если диалект поддерживает возврат с помощью DELETE..FROM
Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
denormalize_name(name)¶ преобразовать заданное имя в нечувствительный к регистру идентификатор для бэкенда, если это имя в нижнем регистре.
Этот метод используется, только если диалект определяет require_name_normalize=True.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
div_is_floordiv: bool = True¶ целевая база данных рассматривает оператор / деления как «деление на пол»
-
method
sqlalchemy.engine.default.DefaultDialect.
do_begin(dbapi_connection)¶ Обеспечьте реализацию
connection.begin()
, учитывая соединение DB-API.В DBAPI нет специального метода «begin», и предполагается, что транзакции являются неявными. Этот крючок предоставляется для тех DBAPI, которым может понадобиться дополнительная помощь в этой области.
- Параметры:
dbapi_connection – соединение DBAPI, обычно проксируемое внутри
ConnectionFairy
.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_begin_twophase(connection: Connection, xid: Any) None ¶ наследуется от
Dialect.do_begin_twophase()
методаDialect
Начать двухфазную транзакцию на данном соединении.
- Параметры:
connection – a
Connection
.xid – xid
-
method
sqlalchemy.engine.default.DefaultDialect.
do_close(dbapi_connection)¶ Обеспечьте реализацию
connection.close()
, учитывая соединение DBAPI.Этот хук вызывается
Pool
, когда соединение было отсоединено от пула или возвращается за пределы нормальной емкости пула.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_commit(dbapi_connection)¶ Обеспечьте реализацию
connection.commit()
, учитывая соединение DB-API.- Параметры:
dbapi_connection – соединение DBAPI, обычно проксируемое внутри
ConnectionFairy
.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_commit_twophase(connection: Connection, xid: Any, is_prepared: bool = True, recover: bool = False) None ¶ наследуется от
Dialect.do_commit_twophase()
методаDialect
Выполнить двухфазную транзакцию на данном соединении.
- Параметры:
connection – a
Connection
.xid – xid
is_prepared – был ли вызван
TwoPhaseTransaction.prepare()
или нет.recover – если был передан флаг восстановления.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_execute(cursor, statement, parameters, context=None)¶ Обеспечьте реализацию
cursor.execute(statement, parameters)
.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_execute_no_params(cursor, statement, context=None)¶ Обеспечьте реализацию
cursor.execute(statement)
.Коллекция параметров не должна быть отправлена.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_executemany(cursor, statement, parameters, context=None)¶ Обеспечьте реализацию
cursor.executemany(statement, parameters)
.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_ping(dbapi_connection: DBAPIConnection) bool ¶ пропинговать соединение DBAPI и вернуть True, если соединение доступно.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_prepare_twophase(connection: Connection, xid: Any) None ¶ наследуется от
Dialect.do_prepare_twophase()
методаDialect
Подготовьте двухфазную транзакцию на заданном соединении.
- Параметры:
connection – a
Connection
.xid – xid
-
method
sqlalchemy.engine.default.DefaultDialect.
do_recover_twophase(connection: Connection) List[Any] ¶ наследуется от
Dialect.do_recover_twophase()
методаDialect
Восстановить список нефиксированных подготовленных идентификаторов двухфазных транзакций на данном соединении.
- Параметры:
connection – a
Connection
.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_release_savepoint(connection, name)¶ Освобождение именованной точки сохранения на соединении.
- Параметры:
connection – a
Connection
.name – имя точки сохранения.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_rollback(dbapi_connection)¶ Обеспечьте реализацию
connection.rollback()
, учитывая соединение DB-API.- Параметры:
dbapi_connection – соединение DBAPI, обычно проксируемое внутри
ConnectionFairy
.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_rollback_to_savepoint(connection, name)¶ Откат соединения к названной точке сохранения.
- Параметры:
connection – a
Connection
.name – имя точки сохранения.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_rollback_twophase(connection: Connection, xid: Any, is_prepared: bool = True, recover: bool = False) None ¶ наследуется от
Dialect.do_rollback_twophase()
методаDialect
Откат двухфазной транзакции на данном соединении.
- Параметры:
connection – a
Connection
.xid – xid
is_prepared – был ли вызван
TwoPhaseTransaction.prepare()
или нет.recover – если был передан флаг восстановления.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_savepoint(connection, name)¶ Создает точку сохранения с заданным именем.
- Параметры:
connection – a
Connection
.name – имя точки сохранения.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_set_input_sizes(cursor: DBAPICursor, list_of_tuples: _GenericSetInputSizesType, context: ExecutionContext) Any ¶ наследуется от
Dialect.do_set_input_sizes()
методаDialect
вызвать метод cursor.setinputsizes() с соответствующими аргументами
Этот хук вызывается, если атрибут
Dialect.bind_typing
установлен в значениеBindTyping.SETINPUTSIZES
. Данные параметра передаются в виде списка кортежей (paramname, dbtype, sqltype), гдеparamname
- ключ параметра в операторе,dbtype
- тип данных DBAPI иsqltype
- тип SQLAlchemy. Порядок кортежей соответствует правильному порядку параметров.Добавлено в версии 1.4.
Изменено в версии 2.0: - setinputsizes mode is now enabled by setting
Dialect.bind_typing
toBindTyping.SETINPUTSIZES
. Dialects which accept ause_setinputsizes
parameter should set this value appropriately.
-
method
sqlalchemy.engine.default.DefaultDialect.
do_terminate(dbapi_connection)¶ Предоставьте реализацию
connection.close()
, которая старается, насколько это возможно, не блокировать, учитывая соединение DBAPI.В подавляющем большинстве случаев это просто вызов .close(), однако для некоторых диалектов asyncio могут использоваться другие функции API.
Этот хук вызывается
Pool
, когда соединение перерабатывается или было признано недействительным.Добавлено в версии 1.4.41.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
driver: str¶ идентификационное имя для DBAPI диалекта
-
attribute
sqlalchemy.engine.default.DefaultDialect.
engine_config_types: Mapping[str, Any] = {'echo': <function bool_or_str.<locals>.bool_or_value>, 'echo_pool': <function bool_or_str.<locals>.bool_or_value>, 'future': <function asbool>, 'max_overflow': <function asint>, 'pool_recycle': <function asint>, 'pool_size': <function asint>, 'pool_timeout': <function asint>}¶ отображение строковых ключей, которые могут быть в конфигурации движка связаны с функциями преобразования типов.
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
engine_created(engine: Engine) None ¶ наследуется от
Dialect.engine_created()
методаDialect
Удобный хук, вызываемый перед возвратом окончательного
Engine
.Если диалект вернул другой класс из метода
get_dialect_cls()
, то хук вызывается на обоих классах, сначала на классе диалекта, возвращенном методомget_dialect_cls()
, а затем на классе, на котором был вызван метод.Этот хук должен использоваться диалектами и/или обертками для применения специальных событий к движку или его компонентам. В частности, он позволяет классу-обертке диалекта применять события уровня диалекта.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
exclude_set_input_sizes: Optional[Set[Any]] = None¶ набор объектов типа DBAPI, которые должны быть исключены в автоматических вызовах cursor.setinputsizes().
Это используется, только если bind_typing имеет значение BindTyping.SET_INPUT_SIZES
-
attribute
sqlalchemy.engine.default.DefaultDialect.
execute_sequence_format¶ alias of
tuple
-
attribute
sqlalchemy.engine.default.DefaultDialect.
execution_ctx_cls¶ alias of
DefaultExecutionContext
-
attribute
sqlalchemy.engine.default.DefaultDialect.
favor_returning_over_lastrowid: bool = False¶ для бэкендов, поддерживающих как lastrowid, так и стратегию вставки RETURNING, отдавайте предпочтение RETURNING для простых вставок с одним интом pk.
cursor.lastrowid имеет тенденцию быть более производительным на большинстве бэкендов.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
full_returning¶ Не рекомендуется, начиная с версии 2.0: full_returning устарел, используйте insert_returning, update_returning, delete_returning
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
get_async_dialect_cls(url: URL) Type[Dialect] ¶ наследуется от
Dialect.get_async_dialect_cls()
методаDialect
Учитывая URL, верните
Dialect
, который будет использоваться асинхронным механизмом.По умолчанию это псевдоним
Dialect.get_dialect_cls()
и возвращает только cls. Он может использоваться, если диалект предоставляет синхронную и асинхронную версии под одним именем, как, например, драйверpsycopg
.Добавлено в версии 2.
См.также
-
method
sqlalchemy.engine.default.DefaultDialect.
get_check_constraints(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedCheckConstraint] ¶ наследуется от
Dialect.get_check_constraints()
методаDialect
Возвращает информацию о контрольных ограничениях в
table_name
.Учитывая строку
table_name
и необязательную строкуschema
, возвращает информацию об ограничениях проверки в виде списка dicts, соответствующего словарюReflectedCheckConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_check_constraints()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_columns(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedColumn] ¶ наследуется от
Dialect.get_columns()
методаDialect
Возвращает информацию о столбцах в
table_name
.Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, вернуть информацию о столбцах в виде списка словарей, соответствующих словарюReflectedColumn
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_columns()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_default_isolation_level(dbapi_conn)¶ Учитывая соединение DBAPI, верните его уровень изоляции или уровень изоляции по умолчанию, если он не может быть найден.
Может переопределяться подклассами, чтобы обеспечить «запасной» уровень изоляции для баз данных, которые не могут надежно получить фактический уровень изоляции.
По умолчанию вызывает метод
Interfaces.get_isolation_level()
, распространяя любые возникшие исключения.Добавлено в версии 1.3.22.
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
get_dialect_cls(url: URL) Type[Dialect] ¶ наследуется от
Dialect.get_dialect_cls()
методаDialect
Учитывая URL, возвращает
Dialect
, который будет использован.Это крючок, который позволяет внешнему плагину предоставлять функциональность вокруг существующего диалекта, позволяя загружать плагин из url на основе точки входа, а затем плагин возвращает фактический диалект для использования.
По умолчанию возвращается только cls.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_dialect_pool_class(url: URL) Type[Pool] ¶ возвращает класс Pool для использования для заданного URL
-
method
sqlalchemy.engine.default.DefaultDialect.
get_driver_connection(connection)¶ Возвращает объект соединения, возвращенный внешним пакетом драйвера.
Для обычных диалектов, использующих драйвер, совместимый с DBAPI, этот вызов просто вернет
connection
, переданный в качестве аргумента. Для диалектов, которые вместо этого адаптируют драйвер, не совместимый с DBAPI, например, при адаптации драйвера asyncio, этот вызов вернет объект типа соединения, возвращаемый драйвером.Добавлено в версии 1.4.24.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_foreign_keys(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedForeignKeyConstraint] ¶ наследуется от
Dialect.get_foreign_keys()
методаDialect
Возвращает информацию об foreign_keys в
table_name
.Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, возвращает информацию о внешнем ключе в виде списка dicts, соответствующего словарюReflectedForeignKeyConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_foreign_keys()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_indexes(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedIndex] ¶ наследуется от
Dialect.get_indexes()
методаDialect
Возвращает информацию об индексах в
table_name
.Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, вернуть информацию об индексе в виде списка словарей, соответствующих словарюReflectedIndex
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_indexes()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_isolation_level(dbapi_connection: DBAPIConnection) Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT'] ¶ наследуется от
Dialect.get_isolation_level()
методаDialect
Учитывая соединение DBAPI, верните его уровень изоляции.
При работе с объектом
Connection
соответствующее соединение DBAPI может быть получено с помощью аксессораConnection.connection
.Обратите внимание, что это метод уровня диалекта, который используется как часть реализации средств уровня изоляции
Connection
иEngine
; эти API следует предпочесть для большинства типичных случаев использования.См.также
Connection.get_isolation_level()
- просмотр текущего уровняConnection.default_isolation_level
- просмотр уровня по умолчаниюConnection.execution_options.isolation_level
- устанавливается на уровень изоляцииConnection
create_engine.isolation_level
- устанавливается на уровень изоляцииEngine
-
method
sqlalchemy.engine.default.DefaultDialect.
get_isolation_level_values(dbapi_conn: DBAPIConnection) List[Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']] ¶ наследуется от
Dialect.get_isolation_level_values()
методаDialect
возвращает последовательность строковых имен уровней изоляции, которые принимаются данным диалектом.
Доступные имена должны использовать следующие соглашения:
использовать имена UPPERCASE. Методы уровня изоляции принимают имена в нижнем регистре, но они нормализуются в UPPERCASE перед передачей в диалект.
отдельные слова должны разделяться пробелами, а не подчеркиваниями, например,
REPEATABLE READ
. имена уровня изоляции будут иметь подчеркивания, преобразованные в пробелы перед передачей в диалект.Имена для четырех стандартных имен изоляции в той степени, в которой они поддерживаются бэкендом, должны быть
READ UNCOMMITTED
READ COMMITTED
,REPEATABLE READ
,SERIALIZABLE
.если диалект поддерживает опцию автокоммита, она должна быть предоставлена с использованием имени уровня изоляции
AUTOCOMMIT
.Другие режимы изоляции также могут присутствовать, при условии, что они названы в UPPERCASE и используют пробелы, а не подчеркивания.
Эта функция используется для того, чтобы диалект по умолчанию мог проверить, является ли заданный параметр уровня изоляции действительным, в противном случае возникает ошибка
ArgumentError
.В метод передается соединение DBAPI, в том маловероятном случае, если диалект должен сам опросить соединение для определения этого списка, однако ожидается, что большинство бэкендов вернут жестко закодированный список значений. Если диалект поддерживает «AUTOCOMMIT», это значение также должно присутствовать в возвращаемой последовательности.
По умолчанию метод выдает значение
NotImplementedError
. Если диалект не реализует этот метод, то диалект по умолчанию не будет выполнять никакой проверки заданного значения уровня изоляции перед передачей его в методDialect.set_isolation_level()
. Это сделано для обеспечения обратной совместимости со сторонними диалектами, которые, возможно, еще не реализуют этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_materialized_view_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ наследуется от
Dialect.get_materialized_view_names()
методаDialect
Возвращает список всех имен материализованных представлений, доступных в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_materialized_view_names()
.- Параметры:
schema – имя схемы для запроса, если это не схема по умолчанию. … versionadded:: 2.0
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_check_constraints(connection, **kw)¶ Возвращает информацию о проверочных ограничениях во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_check_constraints()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_columns(connection, **kw)¶ Возвращает информацию о колонках во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_columns()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_foreign_keys(connection, **kw)¶ Возвращает информацию об foreign_keys во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_foreign_keys()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_indexes(connection, **kw)¶ Возвращает информацию об индексах во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_indexes()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_pk_constraint(connection, **kw)¶ Возвращает информацию об ограничениях первичного ключа во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_pk_constraint()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_table_comment(connection, **kw)¶ Возвращает информацию о комментарии таблицы во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_table_comment()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_table_options(connection, **kw)¶ Возвращает словарь опций, заданных при создании таблиц в данной схеме.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_table_options()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_unique_constraints(connection, **kw)¶ Возвращает информацию об уникальных ограничениях во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_unique_constraints()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_pk_constraint(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) ReflectedPrimaryKeyConstraint ¶ наследуется от
Dialect.get_pk_constraint()
методаDialect
Возвращает информацию об ограничении первичного ключа для table_name`.
Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, верните информацию о первичном ключе в виде словаря, соответствующего словарюReflectedPrimaryKeyConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_pk_constraint()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_schema_names(connection: Connection, **kw: Any) List[str] ¶ наследуется от
Dialect.get_schema_names()
методаDialect
Возвращает список всех имен схем, доступных в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_schema_names()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_sequence_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ наследуется от
Dialect.get_sequence_names()
методаDialect
Возвращает список всех имен последовательностей, имеющихся в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_sequence_names()
.- Параметры:
schema – имя схемы для запроса, если не используется схема по умолчанию.
Добавлено в версии 1.4.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_table_comment(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) ReflectedTableComment ¶ наследуется от
Dialect.get_table_comment()
методаDialect
Возвращает «комментарий» для таблицы, идентифицированной
table_name
.Учитывая строку
table_name
и необязательную строкуschema
, вернуть информацию о комментариях к таблице в виде словаря, соответствующего словарюReflectedTableComment
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_table_comment()
.- поднять:
NotImplementedError
для диалектов, которые не поддерживают комментарии.
Добавлено в версии 1.2.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_table_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ наследуется от
Dialect.get_table_names()
методаDialect
Возвращает список имен таблиц для
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_table_names()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_table_options(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) Dict[str, Any] ¶ наследуется от
Dialect.get_table_options()
методаDialect
Возвращает словарь опций, заданных при создании
table_name
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_table_options()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_temp_table_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ наследуется от
Dialect.get_temp_table_names()
методаDialect
Возвращает список имен временных таблиц на данном соединении, если это поддерживается базовым бэкендом.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_temp_table_names()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_temp_view_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ наследуется от
Dialect.get_temp_view_names()
методаDialect
Возвращает список временных имен представлений на данном соединении, если это поддерживается базовым бэкендом.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_temp_view_names()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_unique_constraints(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedUniqueConstraint] ¶ наследуется от
Dialect.get_unique_constraints()
методаDialect
Возвращает информацию об уникальных ограничениях в
table_name
.Учитывая строку
table_name
и необязательную строкуschema
, возвращает уникальную информацию об ограничениях в виде списка dicts, соответствующего словарюReflectedUniqueConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_unique_constraints()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_view_definition(connection: Connection, view_name: str, schema: Optional[str] = None, **kw: Any) str ¶ наследуется от
Dialect.get_view_definition()
методаDialect
Возвращает обычное или материализованное определение представления.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_view_definition()
.Учитывая
Connection
, строкуview_name
и необязательную строкуschema
, верните определение представления.
-
method
sqlalchemy.engine.default.DefaultDialect.
get_view_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ наследуется от
Dialect.get_view_names()
методаDialect
Возвращает список всех имен нематериализованных представлений, доступных в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_view_names()
.- Параметры:
schema – имя схемы для запроса, если не используется схема по умолчанию.
-
method
sqlalchemy.engine.default.DefaultDialect.
has_index(connection, table_name, index_name, schema=None, **kw)¶ Проверка существования определенного имени индекса в базе данных.
Учитывая объект
Connection
, строкуtable_name
и строку index name, возвращаетTrue
, если индекс данного имени в данной таблице существует,False
иначе.В
DefaultDialect
это реализовано в методахDialect.has_table()
иDialect.get_indexes()
, однако диалекты могут реализовать более производительную версию.Это внутренний метод диалекта. Приложения должны использовать
Inspector.has_index()
.Добавлено в версии 1.4.
-
method
sqlalchemy.engine.default.DefaultDialect.
has_schema(connection: Connection, schema_name: str, **kw: Any) bool ¶ Проверьте существование определенного имени схемы в базе данных.
Учитывая объект
Connection
, строкуschema_name
, возвращаетTrue
, если схема данного существует,False
иначе.В
DefaultDialect
это реализовано путем проверки наличияschema_name
среди схем, возвращаемыхDialect.get_schema_names()
, однако диалекты могут реализовать более производительную версию.Это внутренний метод диалекта. Приложения должны использовать
Inspector.has_schema()
.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
has_sequence(connection: Connection, sequence_name: str, schema: Optional[str] = None, **kw: Any) bool ¶ наследуется от
Dialect.has_sequence()
методаDialect
Проверка существования определенной последовательности в базе данных.
Учитывая объект
Connection
и строку имя_последовательности, возвращаетTrue
, если данная последовательность существует в базе данных,False
в противном случае.Это внутренний метод диалекта. Приложения должны использовать
Inspector.has_sequence()
.
-
method
sqlalchemy.engine.default.DefaultDialect.
has_table(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) bool ¶ наследуется от
Dialect.has_table()
методаDialect
Для внутреннего использования диалекта, проверка существования определенной таблицы или представления в базе данных.
Учитывая объект
Connection
, строку table_name и необязательное имя схемы, возвращает True, если данная таблица существует в базе данных, False в противном случае.Этот метод служит базовой реализацией публичного метода
Inspector.has_table()
, а также используется для реализации поведения «checkfirst» для таких методов, какTable.create()
иMetaData.create_all()
.Примечание
Этот метод используется внутри SQLAlchemy и публикуется для того, чтобы сторонние диалекты могли предоставить его реализацию. Это не публичный API для проверки наличия таблицы. Пожалуйста, используйте метод
Inspector.has_table()
.Изменено в версии 2.0:::
Dialect.has_table()
теперь формально поддерживает проверку дополнительных таблицеподобных объектов:любые типы представлений (простые или материализованные)
временные таблицы любого вида
Ранее эти две проверки не были формально определены, и различные диалекты могли отличаться по своему поведению. Теперь набор тестов диалектов включает тесты для всех этих типов объектов, и диалекты в той степени, в которой опорная база данных поддерживает представления или временные таблицы, должны стремиться поддерживать нахождение этих объектов для полного соответствия требованиям.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
has_terminate: bool = False¶ Имеет ли этот диалект отдельную реализацию «terminate», которая не блокирует и не требует ожидания.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
identifier_preparer: IdentifierPreparer¶ Этот элемент будет ссылаться на экземпляр
IdentifierPreparer
после построенияDefaultDialect
.
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
import_dbapi() module ¶ наследуется от
Dialect.import_dbapi()
методаDialect
Импортируйте модуль DBAPI, который используется этим диалектом.
Возвращенный здесь объект модуля Python будет присвоен в качестве переменной экземпляра построенному диалекту под именем
.dbapi
.Изменено в версии 2.0: Метод класса
Dialect.import_dbapi()
переименован из предыдущего метода.Dialect.dbapi()
, который был бы заменен при инстанцировании диалекта самим модулем DBAPI, таким образом, используя одно и то же имя двумя разными способами. Если метод класса.Dialect.dbapi()
присутствует в стороннем диалекте, он будет использован, и будет выдано предупреждение об устаревании.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
include_set_input_sizes: Optional[Set[Any]] = None¶ набор объектов типа DBAPI, которые должны быть включены в автоматические вызовы cursor.setinputsizes().
Это используется, только если bind_typing имеет значение BindTyping.SET_INPUT_SIZES
-
method
sqlalchemy.engine.default.DefaultDialect.
initialize(connection)¶ Вызывается во время стратегического создания диалекта с подключением.
Позволяет диалектам настраивать опции на основе информации о версии сервера или других свойств.
Передаваемое здесь соединение является объектом SQLAlchemy Connection с полными возможностями.
Метод initialize() базового диалекта должен вызываться через super().
Примечание
начиная с SQLAlchemy 1.4, этот метод вызывается перед вызовом любых крючков
Dialect.on_connect()
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
inline_comments: bool = False¶ Указывает, что диалект поддерживает комментарии DDL, которые встроены в определение таблицы или столбца. Если False, это означает, что для установки комментариев таблиц и столбцов необходимо использовать ALTER.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insert_executemany_returning: bool¶ диалект / драйвер / база данных поддерживает некоторые средства обеспечения поддержки INSERT…RETURNING при использовании dialect.do_executemany().
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insert_executemany_returning_sort_by_parameter_order: bool¶ диалект / драйвер / база данных поддерживает некоторые средства обеспечения поддержки INSERT…RETURNING, когда dialect.do_executemany() используется вместе с установленным параметром
Insert.returning.sort_by_parameter_order
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insert_returning: bool = False¶ если диалект поддерживает RETURNING с INSERT
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insertmanyvalues_implicit_sentinel: InsertmanyvaluesSentinelOpts = symbol('NOT_SUPPORTED')¶ Опции, указывающие, что база данных поддерживает форму массового INSERT, в которой автоинкрементный целочисленный первичный ключ может надежно использоваться в качестве порядка для вставляемых строк.
Добавлено в версии 2.0.10.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insertmanyvalues_max_parameters: int = 32700¶ Альтернатива insertmanyvalues_page_size, дополнительно ограничивает размер страницы в зависимости от общего количества параметров в операторе.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insertmanyvalues_page_size: int = 1000¶ Количество строк, выводимых в отдельный оператор INSERT..VALUES() для выполнения
ExecuteStyle.INSERTMANYVALUES
.В диалекте по умолчанию это значение равно 1000.
Добавлено в версии 2.0.
См.также
Connection.execution_options.insertmanyvalues_page_size
- вариант выполнения, доступный дляConnection
, утверждений
-
attribute
sqlalchemy.engine.default.DefaultDialect.
is_async: bool = False¶ Предназначен ли этот диалект для использования в asyncio.
-
method
sqlalchemy.engine.default.DefaultDialect.
is_disconnect(e, connection, cursor)¶ Возвращает True, если данная ошибка DB-API указывает на недействительное соединение
-
attribute
sqlalchemy.engine.default.DefaultDialect.
label_length: Optional[int]¶ опционально определяемая пользователем максимальная длина для меток SQL
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
load_provisioning()¶ настроить модуль provision.py для этого диалекта.
Для диалектов, включающих модуль provision.py, который устанавливает последователей provisioning, этот метод должен инициировать этот процесс.
Типичная реализация выглядит следующим образом:
@classmethod def load_provisioning(cls): __import__("mydialect.provision")
Метод по умолчанию предполагает наличие модуля с именем
provision.py
внутри пакета-владельца текущего диалекта, основываясь на атрибуте__module__
:@classmethod def load_provisioning(cls): package = ".".join(cls.__module__.split(".")[0:-1]) try: __import__(package + ".provision") except ImportError: pass
Добавлено в версии 1.3.14.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
loaded_dbapi¶
-
attribute
sqlalchemy.engine.default.DefaultDialect.
max_identifier_length: int = 9999¶ Максимальная длина имен идентификаторов.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
name: str = 'default'¶ идентификационное имя для диалекта с точки зрения DBAPI-нейтральности (например, „sqlite“)
-
method
sqlalchemy.engine.default.DefaultDialect.
normalize_name(name)¶ преобразовать заданное имя в нижний регистр, если оно определено как нечувствительное к регистру.
Этот метод используется, только если диалект определяет require_name_normalize=True.
-
method
sqlalchemy.engine.default.DefaultDialect.
on_connect()¶ возвращает вызываемый файл, который устанавливает вновь созданное DBAPI-соединение.
Вызываемый элемент должен принимать единственный аргумент «conn», который представляет собой само соединение DBAPI. Внутренний вызываемый модуль не имеет возвращаемого значения.
Например:
class MyDialect(default.DefaultDialect): # ... def on_connect(self): def do_on_connect(connection): connection.execute("SET SPECIAL FLAGS etc") return do_on_connect
Этот параметр используется для установки общих для диалекта опций для каждого соединения, таких как режимы изоляции, режимы Unicode и т.д.
Вызываемая переменная «do_on_connect» вызывается с помощью крючка события
PoolEvents.connect()
, затем разворачивает соединение DBAPI и передает его в вызываемую переменную.Изменено в версии 1.4: хук on_connect больше не вызывается дважды для первого соединения диалекта. Однако хук on_connect по-прежнему вызывается перед методом
Dialect.initialize()
.Изменено в версии 1.4.3: хук on_connect вызывается из нового метода on_connect_url, который передает URL, использованный для создания аргументов подключения. Диалекты могут реализовать on_connect_url вместо on_connect, если им нужен объект URL, который был использован для соединения, чтобы получить дополнительный контекст.
Если возвращается None, то слушатель событий не создается.
- Результат:
вызываемый объект, принимающий в качестве аргумента одно соединение DBAPI, или None.
См.также
Dialect.connect()
- позволяет управлять самой последовательностью DBAPIconnect()
.Dialect.on_connect_url()
- заменяетDialect.on_connect()
, чтобы также получить объектURL
в контексте.
-
method
sqlalchemy.engine.default.DefaultDialect.
on_connect_url(url: URL) Optional[Callable[[Any], Any]] ¶ наследуется от
Dialect.on_connect_url()
методаDialect
возвращает вызываемый файл, который устанавливает вновь созданное DBAPI-соединение.
Этот метод представляет собой новый хук, который заменяет метод
Dialect.on_connect()
, если он реализован в диалекте. Когда он не реализован диалектом, он вызывает методDialect.on_connect()
напрямую, чтобы сохранить совместимость с существующими диалектами. Для ожидаемого методаDialect.on_connect()
не предусмотрено никаких изъятий.Вызываемый элемент должен принимать единственный аргумент «conn», который представляет собой само соединение DBAPI. Внутренний вызываемый модуль не имеет возвращаемого значения.
Например:
class MyDialect(default.DefaultDialect): # ... def on_connect_url(self, url): def do_on_connect(connection): connection.execute("SET SPECIAL FLAGS etc") return do_on_connect
Этот параметр используется для установки общих для диалекта опций для каждого соединения, таких как режимы изоляции, режимы Unicode и т.д.
Этот метод отличается от
Dialect.on_connect()
тем, что ему передается объектURL
, имеющий отношение к аргументам подключения. Обычно единственный способ получить это из хукаDialect.on_connect()
- посмотреть на самомEngine
, однако этот объект URL может быть заменен плагинами.Примечание
Реализация
Dialect.on_connect_url()
по умолчанию заключается в вызове методаDialect.on_connect()
. Поэтому, если диалект реализует этот метод, методDialect.on_connect()
не будет вызван, если только переопределяющий диалект не вызовет его непосредственно отсюда.Добавлено в версии 1.4.3: добавил
Dialect.on_connect_url()
, который обычно вызываетDialect.on_connect()
.- Параметры:
url – объект
URL
, представляющийURL
, который был передан методуDialect.create_connect_args()
.- Результат:
вызываемый объект, принимающий в качестве аргумента одно соединение DBAPI, или None.
См.также
-
attribute
sqlalchemy.engine.default.DefaultDialect.
paramstyle: str¶ paramstyle, который будет использоваться (некоторые DB-API поддерживают несколько paramstyle).
-
attribute
sqlalchemy.engine.default.DefaultDialect.
positional: bool¶ True, если параметр paramstyle для этого диалекта является позиционным.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
preexecute_autoincrement_sequences: bool = False¶ Истина, если „неявные“ функции первичного ключа должны быть выполнены отдельно, чтобы получить их значение, если не используется RETURNING.
В настоящее время это ориентировано на PostgreSQL, когда параметр
implicit_returning=False
используется на объектеTable
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
preparer¶ alias of
IdentifierPreparer
-
attribute
sqlalchemy.engine.default.DefaultDialect.
reflection_options: Sequence[str] = ()¶ наследуется от
Dialect.reflection_options
атрибутаDialect
Последовательность строковых имен, указывающих на аргументы ключевых слов, которые могут быть установлены на объекте
Table
, которые будут переданы как «опции отражения» при использованииTable.autoload_with
.Текущий пример - «oracle_resolve_synonyms» в диалекте Oracle.
-
method
sqlalchemy.engine.default.DefaultDialect.
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
-
attribute
sqlalchemy.engine.default.DefaultDialect.
returns_native_bytes: bool = False¶ указывает, возвращаются ли драйвером объекты Python bytes() для «бинарных» типов данных SQL.
Добавлено в версии 2.0.11.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
sequences_optional: bool = False¶ Если True, указывает, должен ли параметр
Sequence.optional
в конструкцииSequence
сигнализировать, чтобы не генерировать CREATE SEQUENCE. Применяется только в диалектах, поддерживающих последовательности. В настоящее время используется только для того, чтобы разрешить PostgreSQL SERIAL для столбца, который определяет Sequence() для использования на других бэкендах.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
server_side_cursors: bool = False¶ deprecated; указывает, следует ли диалекту пытаться использовать курсоры на стороне сервера по умолчанию
-
attribute
sqlalchemy.engine.default.DefaultDialect.
server_version_info: Optional[Tuple[Any, ...]] = None¶ кортеж, содержащий номер версии используемого бэкенда БД.
Это значение доступно только для поддерживающих диалектов и обычно заполняется во время первоначального подключения к базе данных.
-
method
sqlalchemy.engine.default.DefaultDialect.
set_connection_execution_options(connection: Connection, opts: Mapping[str, Any]) None ¶ Установите варианты выполнения для данного соединения.
Это реализуется
DefaultDialect
для того, чтобы реализовать опцию выполненияConnection.execution_options.isolation_level
. Диалекты могут перехватывать различные варианты выполнения, которые могут потребовать изменения состояния на конкретном соединении DBAPI.Добавлено в версии 1.4.
-
method
sqlalchemy.engine.default.DefaultDialect.
set_engine_execution_options(engine: Engine, opts: Mapping[str, Any]) None ¶ Установите варианты выполнения для данного двигателя.
Это реализуется
DefaultDialect
для создания крючков событий для новых экземпляровConnection
, созданных даннымEngine
, которые затем вызовут методDialect.set_connection_execution_options()
для этого соединения.
-
method
sqlalchemy.engine.default.DefaultDialect.
set_isolation_level(dbapi_connection: DBAPIConnection, level: Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']) None ¶ наследуется от
Dialect.set_isolation_level()
методаDialect
Учитывая соединение DBAPI, установите его уровень изоляции.
Обратите внимание, что это метод уровня диалекта, который используется как часть реализации средств уровня изоляции
Connection
иEngine
; эти API следует предпочесть для большинства типичных случаев использования.Если диалект также реализует метод
Dialect.get_isolation_level_values()
, то заданный уровень гарантированно будет одним из строковых имен в этой последовательности, и методу не нужно будет предвидеть ошибку поиска.См.также
Connection.get_isolation_level()
- просмотр текущего уровняConnection.default_isolation_level
- просмотр уровня по умолчаниюConnection.execution_options.isolation_level
- устанавливается на уровень изоляцииConnection
create_engine.isolation_level
- устанавливается на уровень изоляцииEngine
-
attribute
sqlalchemy.engine.default.DefaultDialect.
statement_compiler¶ alias of
SQLCompiler
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_alter: bool = True¶ True
если база данных поддерживаетALTER TABLE
- используется только для генерации ограничений внешнего ключа в определенных обстоятельствах
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_comments: bool = False¶ Указывает, что диалект поддерживает комментирование DDL для таблиц и столбцов.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_constraint_comments: bool = False¶ Указывает, поддерживает ли диалект комментарий DDL к ограничениям.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_default_metavalue: bool = False¶ диалект поддерживает INSERT… VALUES (DEFAULT) синтаксис
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_default_values: bool = False¶ диалект поддерживает INSERT… синтаксис DEFAULT VALUES
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_empty_insert: bool = True¶ диалект поддерживает INSERT () VALUES ()
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_identity_columns: bool = False¶ целевая база данных поддерживает IDENTITY
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_multivalues_insert: bool = False¶ Целевая база данных поддерживает INSERT…VALUES с несколькими наборами значений, т.е. INSERT INTO table (cols) VALUES (…), (…), (…), ….
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_native_boolean: bool = False¶ Указывает, поддерживает ли диалект встроенную конструкцию boolean. Это не позволит
Boolean
генерировать ограничение CHECK при использовании этого типа.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_native_decimal: bool = False¶ указывает, обрабатываются ли и возвращаются ли объекты Decimal для точных числовых типов, или же возвращаются плавающие числа
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_native_enum: bool = False¶ Указывает, поддерживает ли диалект родную конструкцию ENUM. Это предотвратит
Enum
от генерации ограничения CHECK, когда этот тип используется в «родном» режиме.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_native_uuid: bool = False¶ указывает, обрабатываются ли объекты Python UUID() нативно драйвером для типов данных SQL UUID.
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sane_multi_rowcount: bool = True¶ Укажите, правильно ли диалект реализует подсчет рядов для операторов
UPDATE
иDELETE
при выполнении через executemany.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sane_rowcount: bool = True¶ Укажите, правильно ли диалект реализует подсчет рядов для операторов
UPDATE
иDELETE
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sane_rowcount_returning¶ True, если этот диалект поддерживает нормальный подсчет рядов, даже если используется RETURNING.
Для диалектов, не поддерживающих RETURNING, это синоним
supports_sane_rowcount
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sequences: bool = False¶ Указывает, поддерживает ли диалект CREATE SEQUENCE или подобное.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_server_side_cursors: bool = False¶ указывает, поддерживает ли диалект курсоры на стороне сервера
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_simple_order_by_label: bool = True¶ целевая база данных поддерживает ORDER BY <labelname>, где <labelname> относится к метке в предложении columns в SELECT
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_statement_cache: bool = True¶ указывает, поддерживает ли этот диалект кэширование.
Все диалекты, совместимые с кэшированием утверждений, должны установить этот флаг в True непосредственно в каждом классе диалекта и подклассе, который его поддерживает. SQLAlchemy проверяет, что этот флаг локально присутствует в каждом подклассе диалекта, прежде чем использовать кэширование утверждений. Это необходимо для обеспечения безопасности старых или новых диалектов, которые еще не полностью протестированы на совместимость с кэшированием операторов SQL.
Добавлено в версии 1.4.5.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
tuple_in_values: bool = False¶ целевая база данных поддерживает кортеж IN, т.е. (x, y) IN ((q, p), (r, z))
-
attribute
sqlalchemy.engine.default.DefaultDialect.
type_compiler: Any¶ наследие; это класс TypeCompiler на уровне класса, экземпляр TypeCompiler на уровне экземпляра.
Вместо этого обратитесь к type_compiler_instance.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
type_compiler_cls¶ alias of
GenericTypeCompiler
-
attribute
sqlalchemy.engine.default.DefaultDialect.
type_compiler_instance: TypeCompiler¶ экземпляр класса
Compiled
, используемого для компиляции объектов типа SQLДобавлено в версии 2.0.
-
method
sqlalchemy.engine.default.DefaultDialect.
type_descriptor(typeobj)¶ Предоставьте специфичный для базы данных объект
TypeEngine
, учитывая общий объект, который поступает из модуля types.Этот метод ищет словарь с именем
colspecs
как переменную на уровне класса или экземпляра и переходит кadapt_type()
.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
update_executemany_returning: bool = False¶ диалект поддерживает UPDATE…RETURNING с executemany.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
update_returning: bool = False¶ если диалект поддерживает RETURNING с UPDATE
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
update_returning_multifrom: bool = False¶ если диалект поддерживает RETURNING с UPDATE..FROM
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
use_insertmanyvalues: bool = False¶ если True, указывает, что следует использовать функциональность «insertmanyvalues», чтобы обеспечить поведение
insert_executemany_returning
, если это возможно.На практике установка значения True означает:
Если
supports_multivalues_insert
,insert_returning
иuse_insertmanyvalues
равны True, компилятор SQL создаст INSERT, который будет интерпретированDefaultDialect
как выполнениеExecuteStyle.INSERTMANYVALUES
, что позволяет выполнять INSERT многих строк с RETURNING, переписывая однострочный оператор INSERT с несколькими пунктами VALUES, а также выполняя оператор несколько раз для серии пакетов, когда задано большое количество строк.Параметр имеет значение False для диалекта по умолчанию и устанавливается в True для внутренних диалектов SQLAlchemy - SQLite, MySQL/MariaDB, PostgreSQL, SQL Server. Он остается в False для Oracle, который обеспечивает встроенную поддержку «executemany with RETURNING», а также не поддерживает
supports_multivalues_insert
. Для MySQL/MariaDB те диалекты MySQL, которые не поддерживают RETURNING, не будут сообщатьinsert_executemany_returning
как True.Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
use_insertmanyvalues_wo_returning: bool = False¶ если True, и use_insertmanyvalues также True, операторы INSERT, которые не включают RETURNING, также будут использовать «insertmanyvalues».
Добавлено в версии 2.0.
-
attribute
- class sqlalchemy.engine.Dialect¶
Определите поведение конкретной базы данных и комбинации DB-API.
Любой аспект определения метаданных, генерации SQL-запросов, их выполнения, обработки наборов результатов и всего остального, что различается между базами данных, определяется под общей категорией диалекта. Диалект действует как фабрика для других реализаций объектов, специфичных для базы данных, включая ExecutionContext, Compiled, DefaultGenerator и TypeEngine.
Примечание
Диалекты сторонних производителей не должны подклассифицировать
Dialect
напрямую. Вместо этого подклассDefaultDialect
или класс-потомок.Members
bind_typing, colspecs, connect(), construct_arguments, create_connect_args(), create_xid(), cte_follows_insert, dbapi, dbapi_exception_translation_map, ddl_compiler, default_isolation_level, default_metavalue_token, default_schema_name, default_sequence_base, delete_executemany_returning, delete_returning, delete_returning_multifrom, denormalize_name(), div_is_floordiv, do_begin(), do_begin_twophase(), do_close(), do_commit(), do_commit_twophase(), do_execute(), do_execute_no_params(), do_executemany(), do_ping(), do_prepare_twophase(), do_recover_twophase(), do_release_savepoint(), do_rollback(), do_rollback_to_savepoint(), do_rollback_twophase(), do_savepoint(), do_set_input_sizes(), do_terminate(), driver, engine_config_types, engine_created(), exclude_set_input_sizes, execute_sequence_format, execution_ctx_cls, favor_returning_over_lastrowid, get_async_dialect_cls(), get_check_constraints(), get_columns(), get_default_isolation_level(), get_dialect_cls(), get_dialect_pool_class(), get_driver_connection(), get_foreign_keys(), get_indexes(), get_isolation_level(), get_isolation_level_values(), get_materialized_view_names(), get_multi_check_constraints(), get_multi_columns(), get_multi_foreign_keys(), get_multi_indexes(), get_multi_pk_constraint(), get_multi_table_comment(), get_multi_table_options(), get_multi_unique_constraints(), get_pk_constraint(), get_schema_names(), get_sequence_names(), get_table_comment(), get_table_names(), get_table_options(), get_temp_table_names(), get_temp_view_names(), get_unique_constraints(), get_view_definition(), get_view_names(), has_index(), has_schema(), has_sequence(), has_table(), has_terminate, identifier_preparer, import_dbapi(), include_set_input_sizes, initialize(), inline_comments, insert_executemany_returning, insert_executemany_returning_sort_by_parameter_order, insert_returning, insertmanyvalues_implicit_sentinel, insertmanyvalues_max_parameters, insertmanyvalues_page_size, is_async, is_disconnect(), label_length, load_provisioning(), loaded_dbapi, max_identifier_length, name, normalize_name(), on_connect(), on_connect_url(), paramstyle, positional, preexecute_autoincrement_sequences, preparer, reflection_options, reset_isolation_level(), returns_native_bytes, sequences_optional, server_side_cursors, server_version_info, set_connection_execution_options(), set_engine_execution_options(), set_isolation_level(), statement_compiler, supports_alter, supports_comments, supports_constraint_comments, supports_default_metavalue, supports_default_values, supports_empty_insert, supports_identity_columns, supports_multivalues_insert, supports_native_boolean, supports_native_decimal, supports_native_enum, supports_native_uuid, supports_sane_multi_rowcount, supports_sane_rowcount, supports_sequences, supports_server_side_cursors, supports_simple_order_by_label, supports_statement_cache, tuple_in_values, type_compiler, type_compiler_cls, type_compiler_instance, type_descriptor(), update_executemany_returning, update_returning, update_returning_multifrom, use_insertmanyvalues, use_insertmanyvalues_wo_returning
Классная подпись
класс
sqlalchemy.engine.Dialect
(sqlalchemy.event.registry.EventTarget
)-
attribute
sqlalchemy.engine.Dialect.
bind_typing = 1¶ определить средства передачи информации о типе в базу данных и/или драйвер для связанных параметров.
Значения см. в разделе
BindTyping
.Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
colspecs: MutableMapping[Type[TypeEngine[Any]], Type[TypeEngine[Any]]]¶ Словарь классов TypeEngine из sqlalchemy.types, сопоставленных с подклассами, которые специфичны для класса диалекта. Этот словарь находится только на уровне класса и не доступен из самого экземпляра диалекта.
-
method
sqlalchemy.engine.Dialect.
connect(*cargs: Any, **cparams: Any) DBAPIConnection ¶ Установите соединение, используя DBAPI этого диалекта.
По умолчанию этот метод реализуется следующим образом:
def connect(self, *cargs, **cparams): return self.dbapi.connect(*cargs, **cparams)
Параметры
*cargs, **cparams
генерируются непосредственно из методаDialect.create_connect_args()
этого диалекта.Этот метод можно использовать для диалектов, которым необходимо выполнять программные шаги для каждого соединения при получении нового соединения от DBAPI.
- Параметры:
*cargs – позиционные параметры, возвращаемые из метода
Dialect.create_connect_args()
**cparams – параметры ключевого слова, возвращаемые из метода
Dialect.create_connect_args()
.
- Результат:
соединение DBAPI, обычно из функции PEP 249 уровня модуля
.connect()
.
-
attribute
sqlalchemy.engine.Dialect.
construct_arguments: Optional[List[Tuple[Type[Union[SchemaItem, ClauseElement]], Mapping[str, Any]]]] = None¶ Необязательный набор спецификаторов аргументов для различных конструкций SQLAlchemy, обычно элементов схемы.
Чтобы реализовать, создайте серию кортежей, как в:
construct_arguments = [ (schema.Index, { "using": False, "where": None, "ops": None }) ]
Если приведенная выше конструкция установлена на диалекте PostgreSQL, то конструкция
Index
теперь будет принимать аргументы ключевых словpostgresql_using
,postgresql_where
, nadpostgresql_ops
. Любой другой аргумент, указанный конструкторуIndex
, который имеет префиксpostgresql_
, вызовет ошибкуArgumentError
.Диалект, не включающий член
construct_arguments
, не будет участвовать в системе проверки аргументов. Для такого диалекта любое имя аргумента принимается всеми участвующими конструкциями в пределах пространства имен аргументов с префиксом этого имени диалекта. Это объясняется тем, что диалекты сторонних разработчиков, которые еще не реализовали эту возможность, продолжают работать по-старому.См.также
DialectKWArgs
- реализующий базовый класс, который потребляетDefaultDialect.construct_arguments
-
method
sqlalchemy.engine.Dialect.
create_connect_args(url: URL) ConnectArgsType ¶ Построение аргументов подключения, совместимых с DB-API.
Учитывая объект
URL
, возвращает кортеж, состоящий из(*args, **kwargs)
, подходящих для отправки непосредственно в функцию connect dbapi. Аргументы передаются в методDialect.connect()
, который затем запускает функциюconnect()
на уровне DBAPI.Метод обычно использует метод
URL.translate_connect_args()
для генерации словаря опций.По умолчанию используется:
def create_connect_args(self, url): opts = url.translate_connect_args() opts.update(url.query) return [[], opts]
- Параметры:
url – объект
URL
- Результат:
кортеж
(*args, **kwargs)
, который будет передан методуDialect.connect()
.
См.также
-
method
sqlalchemy.engine.Dialect.
create_xid() Any ¶ Создайте идентификатор двухфазной транзакции.
Этот идентификатор будет передан в do_begin_twophase(), do_rollback_twophase(), do_commit_twophase(). Его формат не определен.
-
attribute
sqlalchemy.engine.Dialect.
cte_follows_insert: bool¶ целевая база данных, когда ей предоставляется CTE с оператором INSERT, требует, чтобы CTE находился ниже INSERT
-
attribute
sqlalchemy.engine.Dialect.
dbapi: Optional[ModuleType]¶ Ссылка на сам объект модуля DBAPI.
Диалекты SQLAlchemy импортируют модули DBAPI с помощью метода класса
Dialect.import_dbapi()
. Это делается для того, чтобы любой модуль диалекта можно было импортировать и использовать для генерации SQL-запросов без необходимости установки фактического драйвера DBAPI. Только когдаEngine
создается с помощьюcreate_engine()
, DBAPI импортируется; в этот момент процесс создания назначает модуль DBAPI этому атрибуту.Поэтому диалекты должны реализовать
Dialect.import_dbapi()
, который будет импортировать необходимый модуль и возвращать его, а затем ссылаться наself.dbapi
в коде диалекта для того, чтобы обратиться к содержимому модуля DBAPI.Изменено в версии The: <<<Атрибут
Dialect.dbapi
используетсяDialect
исключительно в качестве ссылки на модуль DBAPI для каждого экземпляра. Предыдущий не полностью документированный метод класса.Dialect.dbapi()
устарел и заменен наDialect.import_dbapi()
.
-
attribute
sqlalchemy.engine.Dialect.
dbapi_exception_translation_map: Mapping[str, str] = {}¶ Словарь имен, который будет содержать в качестве значений имена исключений pep-249 («IntegrityError», «OperationalError» и т.д.), привязанные к альтернативным именам классов, для поддержки случая, когда в DBAPI есть классы исключений, которые названы не так, как на них ссылаются (например, IntegrityError = MyException). В подавляющем большинстве случаев этот словарь пуст.
-
attribute
sqlalchemy.engine.Dialect.
ddl_compiler: Type[DDLCompiler]¶ класс
Compiled
, используемый для компиляции утверждений DDL
-
attribute
sqlalchemy.engine.Dialect.
default_isolation_level: Optional[IsolationLevel]¶ изоляция, которая неявно присутствует при новых соединениях
-
attribute
sqlalchemy.engine.Dialect.
default_metavalue_token: str = 'DEFAULT'¶ для синтаксиса INSERT… VALUES (DEFAULT) синтаксис, маркер, который нужно поместить в круглую скобку.
Например, для SQLite это ключевое слово «NULL».
-
attribute
sqlalchemy.engine.Dialect.
default_schema_name: Optional[str]¶ имя схемы по умолчанию. Это значение доступно только для поддерживающих диалектов и обычно заполняется при первоначальном подключении к базе данных.
-
attribute
sqlalchemy.engine.Dialect.
default_sequence_base: int¶ значение по умолчанию, которое будет отображаться как часть «START WITH» в DDL-операторе CREATE SEQUENCE.
-
attribute
sqlalchemy.engine.Dialect.
delete_executemany_returning: bool¶ диалект поддерживает DELETE…RETURNING с executemany.
-
attribute
sqlalchemy.engine.Dialect.
delete_returning: bool¶ если диалект поддерживает возврат с помощью DELETE
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
delete_returning_multifrom: bool¶ если диалект поддерживает возврат с помощью DELETE..FROM
Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
denormalize_name(name: str) str ¶ преобразовать заданное имя в нечувствительный к регистру идентификатор для бэкенда, если это имя в нижнем регистре.
Этот метод используется, только если диалект определяет require_name_normalize=True.
-
attribute
sqlalchemy.engine.Dialect.
div_is_floordiv: bool¶ целевая база данных рассматривает оператор / деления как «деление на пол»
-
method
sqlalchemy.engine.Dialect.
do_begin(dbapi_connection: PoolProxiedConnection) None ¶ Обеспечьте реализацию
connection.begin()
, учитывая соединение DB-API.В DBAPI нет специального метода «begin», и предполагается, что транзакции являются неявными. Этот крючок предоставляется для тех DBAPI, которым может понадобиться дополнительная помощь в этой области.
- Параметры:
dbapi_connection – соединение DBAPI, обычно проксируемое внутри
ConnectionFairy
.
-
method
sqlalchemy.engine.Dialect.
do_begin_twophase(connection: Connection, xid: Any) None ¶ Начать двухфазную транзакцию на данном соединении.
- Параметры:
connection – a
Connection
.xid – xid
-
method
sqlalchemy.engine.Dialect.
do_close(dbapi_connection: DBAPIConnection) None ¶ Обеспечьте реализацию
connection.close()
, учитывая соединение DBAPI.Этот хук вызывается
Pool
, когда соединение было отсоединено от пула или возвращается за пределы нормальной емкости пула.
-
method
sqlalchemy.engine.Dialect.
do_commit(dbapi_connection: PoolProxiedConnection) None ¶ Обеспечьте реализацию
connection.commit()
, учитывая соединение DB-API.- Параметры:
dbapi_connection – соединение DBAPI, обычно проксируемое внутри
ConnectionFairy
.
-
method
sqlalchemy.engine.Dialect.
do_commit_twophase(connection: Connection, xid: Any, is_prepared: bool = True, recover: bool = False) None ¶ Выполнить двухфазную транзакцию на данном соединении.
- Параметры:
connection – a
Connection
.xid – xid
is_prepared – был ли вызван
TwoPhaseTransaction.prepare()
или нет.recover – если был передан флаг восстановления.
-
method
sqlalchemy.engine.Dialect.
do_execute(cursor: DBAPICursor, statement: str, parameters: Optional[Union[Sequence[Any], Mapping[str, Any]]], context: Optional[ExecutionContext] = None) None ¶ Обеспечьте реализацию
cursor.execute(statement, parameters)
.
-
method
sqlalchemy.engine.Dialect.
do_execute_no_params(cursor: DBAPICursor, statement: str, context: Optional[ExecutionContext] = None) None ¶ Обеспечьте реализацию
cursor.execute(statement)
.Коллекция параметров не должна быть отправлена.
-
method
sqlalchemy.engine.Dialect.
do_executemany(cursor: DBAPICursor, statement: str, parameters: Union[Sequence[Sequence[Any]], Sequence[Mapping[str, Any]]], context: Optional[ExecutionContext] = None) None ¶ Обеспечьте реализацию
cursor.executemany(statement, parameters)
.
-
method
sqlalchemy.engine.Dialect.
do_ping(dbapi_connection: DBAPIConnection) bool ¶ пропинговать соединение DBAPI и вернуть True, если соединение доступно.
-
method
sqlalchemy.engine.Dialect.
do_prepare_twophase(connection: Connection, xid: Any) None ¶ Подготовьте двухфазную транзакцию на заданном соединении.
- Параметры:
connection – a
Connection
.xid – xid
-
method
sqlalchemy.engine.Dialect.
do_recover_twophase(connection: Connection) List[Any] ¶ Восстановить список нефиксированных подготовленных идентификаторов двухфазных транзакций на данном соединении.
- Параметры:
connection – a
Connection
.
-
method
sqlalchemy.engine.Dialect.
do_release_savepoint(connection: Connection, name: str) None ¶ Освобождение именованной точки сохранения на соединении.
- Параметры:
connection – a
Connection
.name – имя точки сохранения.
-
method
sqlalchemy.engine.Dialect.
do_rollback(dbapi_connection: PoolProxiedConnection) None ¶ Обеспечьте реализацию
connection.rollback()
, учитывая соединение DB-API.- Параметры:
dbapi_connection – соединение DBAPI, обычно проксируемое внутри
ConnectionFairy
.
-
method
sqlalchemy.engine.Dialect.
do_rollback_to_savepoint(connection: Connection, name: str) None ¶ Откат соединения к названной точке сохранения.
- Параметры:
connection – a
Connection
.name – имя точки сохранения.
-
method
sqlalchemy.engine.Dialect.
do_rollback_twophase(connection: Connection, xid: Any, is_prepared: bool = True, recover: bool = False) None ¶ Откат двухфазной транзакции на данном соединении.
- Параметры:
connection – a
Connection
.xid – xid
is_prepared – был ли вызван
TwoPhaseTransaction.prepare()
или нет.recover – если был передан флаг восстановления.
-
method
sqlalchemy.engine.Dialect.
do_savepoint(connection: Connection, name: str) None ¶ Создает точку сохранения с заданным именем.
- Параметры:
connection – a
Connection
.name – имя точки сохранения.
-
method
sqlalchemy.engine.Dialect.
do_set_input_sizes(cursor: DBAPICursor, list_of_tuples: _GenericSetInputSizesType, context: ExecutionContext) Any ¶ вызвать метод cursor.setinputsizes() с соответствующими аргументами
Этот хук вызывается, если атрибут
Dialect.bind_typing
установлен в значениеBindTyping.SETINPUTSIZES
. Данные параметра передаются в виде списка кортежей (paramname, dbtype, sqltype), гдеparamname
- ключ параметра в операторе,dbtype
- тип данных DBAPI иsqltype
- тип SQLAlchemy. Порядок кортежей соответствует правильному порядку параметров.Добавлено в версии 1.4.
Изменено в версии 2.0: - setinputsizes mode is now enabled by setting
Dialect.bind_typing
toBindTyping.SETINPUTSIZES
. Dialects which accept ause_setinputsizes
parameter should set this value appropriately.
-
method
sqlalchemy.engine.Dialect.
do_terminate(dbapi_connection: DBAPIConnection) None ¶ Предоставьте реализацию
connection.close()
, которая старается, насколько это возможно, не блокировать, учитывая соединение DBAPI.В подавляющем большинстве случаев это просто вызов .close(), однако для некоторых диалектов asyncio могут использоваться другие функции API.
Этот хук вызывается
Pool
, когда соединение перерабатывается или было признано недействительным.Добавлено в версии 1.4.41.
-
attribute
sqlalchemy.engine.Dialect.
driver: str¶ идентификационное имя для DBAPI диалекта
-
attribute
sqlalchemy.engine.Dialect.
engine_config_types: Mapping[str, Any]¶ отображение строковых ключей, которые могут быть в конфигурации движка связаны с функциями преобразования типов.
-
classmethod
sqlalchemy.engine.Dialect.
engine_created(engine: Engine) None ¶ Удобный хук, вызываемый перед возвратом окончательного
Engine
.Если диалект вернул другой класс из метода
get_dialect_cls()
, то хук вызывается на обоих классах, сначала на классе диалекта, возвращенном методомget_dialect_cls()
, а затем на классе, на котором был вызван метод.Этот хук должен использоваться диалектами и/или обертками для применения специальных событий к движку или его компонентам. В частности, он позволяет классу-обертке диалекта применять события уровня диалекта.
-
attribute
sqlalchemy.engine.Dialect.
exclude_set_input_sizes: Optional[Set[Any]]¶ набор объектов типа DBAPI, которые должны быть исключены в автоматических вызовах cursor.setinputsizes().
Это используется, только если bind_typing имеет значение BindTyping.SET_INPUT_SIZES
-
attribute
sqlalchemy.engine.Dialect.
execute_sequence_format: Union[Type[Tuple[Any, ...]], Type[Tuple[List[Any]]]]¶ либо тип „tuple“, либо „list“, в зависимости от того, что cursor.execute() принимает в качестве второго аргумента (они различаются).
-
attribute
sqlalchemy.engine.Dialect.
execution_ctx_cls: Type[ExecutionContext]¶ класс
ExecutionContext
, используемый для обработки выполнения операторов
-
attribute
sqlalchemy.engine.Dialect.
favor_returning_over_lastrowid: bool¶ для бэкендов, поддерживающих как lastrowid, так и стратегию вставки RETURNING, отдавайте предпочтение RETURNING для простых вставок с одним интом pk.
cursor.lastrowid имеет тенденцию быть более производительным на большинстве бэкендов.
-
classmethod
sqlalchemy.engine.Dialect.
get_async_dialect_cls(url: URL) Type[Dialect] ¶ Учитывая URL, верните
Dialect
, который будет использоваться асинхронным механизмом.По умолчанию это псевдоним
Dialect.get_dialect_cls()
и возвращает только cls. Он может использоваться, если диалект предоставляет синхронную и асинхронную версии под одним именем, как, например, драйверpsycopg
.Добавлено в версии 2.
См.также
-
method
sqlalchemy.engine.Dialect.
get_check_constraints(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedCheckConstraint] ¶ Возвращает информацию о контрольных ограничениях в
table_name
.Учитывая строку
table_name
и необязательную строкуschema
, возвращает информацию об ограничениях проверки в виде списка dicts, соответствующего словарюReflectedCheckConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_check_constraints()
.
-
method
sqlalchemy.engine.Dialect.
get_columns(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedColumn] ¶ Возвращает информацию о столбцах в
table_name
.Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, вернуть информацию о столбцах в виде списка словарей, соответствующих словарюReflectedColumn
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_columns()
.
-
method
sqlalchemy.engine.Dialect.
get_default_isolation_level(dbapi_conn: DBAPIConnection) Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT'] ¶ Учитывая соединение DBAPI, верните его уровень изоляции или уровень изоляции по умолчанию, если он не может быть найден.
Этот метод может вызывать только NotImplementedError и не должен вызывать никаких других исключений, поскольку он используется неявно при первом подключении.
Метод должен возвращать значение для диалекта, поддерживающего настройки уровня изоляции, поскольку именно к этому уровню будет произведен возврат при изменении уровня изоляции для каждого соединения.
Метод по умолчанию использует метод
Dialect.get_isolation_level()
, если он не переопределен диалектом.Добавлено в версии 1.3.22.
-
classmethod
sqlalchemy.engine.Dialect.
get_dialect_cls(url: URL) Type[Dialect] ¶ Учитывая URL, возвращает
Dialect
, который будет использован.Это крючок, который позволяет внешнему плагину предоставлять функциональность вокруг существующего диалекта, позволяя загружать плагин из url на основе точки входа, а затем плагин возвращает фактический диалект для использования.
По умолчанию возвращается только cls.
-
method
sqlalchemy.engine.Dialect.
get_dialect_pool_class(url: URL) Type[Pool] ¶ возвращает класс Pool для использования для заданного URL
-
method
sqlalchemy.engine.Dialect.
get_driver_connection(connection: DBAPIConnection) Any ¶ Возвращает объект соединения, возвращенный внешним пакетом драйвера.
Для обычных диалектов, использующих драйвер, совместимый с DBAPI, этот вызов просто вернет
connection
, переданный в качестве аргумента. Для диалектов, которые вместо этого адаптируют драйвер, не совместимый с DBAPI, например, при адаптации драйвера asyncio, этот вызов вернет объект типа соединения, возвращаемый драйвером.Добавлено в версии 1.4.24.
-
method
sqlalchemy.engine.Dialect.
get_foreign_keys(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedForeignKeyConstraint] ¶ Возвращает информацию об foreign_keys в
table_name
.Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, возвращает информацию о внешнем ключе в виде списка dicts, соответствующего словарюReflectedForeignKeyConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_foreign_keys()
.
-
method
sqlalchemy.engine.Dialect.
get_indexes(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedIndex] ¶ Возвращает информацию об индексах в
table_name
.Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, вернуть информацию об индексе в виде списка словарей, соответствующих словарюReflectedIndex
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_indexes()
.
-
method
sqlalchemy.engine.Dialect.
get_isolation_level(dbapi_connection: DBAPIConnection) Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT'] ¶ Учитывая соединение DBAPI, верните его уровень изоляции.
При работе с объектом
Connection
соответствующее соединение DBAPI может быть получено с помощью аксессораConnection.connection
.Обратите внимание, что это метод уровня диалекта, который используется как часть реализации средств уровня изоляции
Connection
иEngine
; эти API следует предпочесть для большинства типичных случаев использования.См.также
Connection.get_isolation_level()
- просмотр текущего уровняConnection.default_isolation_level
- просмотр уровня по умолчаниюConnection.execution_options.isolation_level
- устанавливается на уровень изоляцииConnection
create_engine.isolation_level
- устанавливается на уровень изоляцииEngine
-
method
sqlalchemy.engine.Dialect.
get_isolation_level_values(dbapi_conn: DBAPIConnection) List[Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']] ¶ возвращает последовательность строковых имен уровней изоляции, которые принимаются данным диалектом.
Доступные имена должны использовать следующие соглашения:
использовать имена UPPERCASE. Методы уровня изоляции принимают имена в нижнем регистре, но они нормализуются в UPPERCASE перед передачей в диалект.
отдельные слова должны разделяться пробелами, а не подчеркиваниями, например,
REPEATABLE READ
. имена уровня изоляции будут иметь подчеркивания, преобразованные в пробелы перед передачей в диалект.Имена для четырех стандартных имен изоляции в той степени, в которой они поддерживаются бэкендом, должны быть
READ UNCOMMITTED
READ COMMITTED
,REPEATABLE READ
,SERIALIZABLE
.если диалект поддерживает опцию автокоммита, она должна быть предоставлена с использованием имени уровня изоляции
AUTOCOMMIT
.Другие режимы изоляции также могут присутствовать, при условии, что они названы в UPPERCASE и используют пробелы, а не подчеркивания.
Эта функция используется для того, чтобы диалект по умолчанию мог проверить, является ли заданный параметр уровня изоляции действительным, в противном случае возникает ошибка
ArgumentError
.В метод передается соединение DBAPI, в том маловероятном случае, если диалект должен сам опросить соединение для определения этого списка, однако ожидается, что большинство бэкендов вернут жестко закодированный список значений. Если диалект поддерживает «AUTOCOMMIT», это значение также должно присутствовать в возвращаемой последовательности.
По умолчанию метод выдает значение
NotImplementedError
. Если диалект не реализует этот метод, то диалект по умолчанию не будет выполнять никакой проверки заданного значения уровня изоляции перед передачей его в методDialect.set_isolation_level()
. Это сделано для обеспечения обратной совместимости со сторонними диалектами, которые, возможно, еще не реализуют этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_materialized_view_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ Возвращает список всех имен материализованных представлений, доступных в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_materialized_view_names()
.- Параметры:
schema – имя схемы для запроса, если это не схема по умолчанию. … versionadded:: 2.0
-
method
sqlalchemy.engine.Dialect.
get_multi_check_constraints(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, List[ReflectedCheckConstraint]]] ¶ Возвращает информацию о проверочных ограничениях во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_check_constraints()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_columns(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, List[ReflectedColumn]]] ¶ Возвращает информацию о колонках во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_columns()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_foreign_keys(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, List[ReflectedForeignKeyConstraint]]] ¶ Возвращает информацию об foreign_keys во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_foreign_keys()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_indexes(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, List[ReflectedIndex]]] ¶ Возвращает информацию об индексах во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_indexes()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_pk_constraint(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, ReflectedPrimaryKeyConstraint]] ¶ Возвращает информацию об ограничениях первичного ключа во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_pk_constraint()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_table_comment(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, ReflectedTableComment]] ¶ Возвращает информацию о комментарии таблицы во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_table_comment()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_table_options(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, Dict[str, Any]]] ¶ Возвращает словарь опций, заданных при создании таблиц в данной схеме.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_table_options()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_multi_unique_constraints(connection: Connection, schema: Optional[str] = None, filter_names: Optional[Collection[str]] = None, **kw: Any) Iterable[Tuple[TableKey, List[ReflectedUniqueConstraint]]] ¶ Возвращает информацию об уникальных ограничениях во всех таблицах в заданном
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_multi_unique_constraints()
.Примечание
DefaultDialect
предоставляет реализацию по умолчанию, которая будет вызывать метод single table для каждого объекта, возвращаемогоDialect.get_table_names()
,Dialect.get_view_names()
илиDialect.get_materialized_view_names()
в зависимости от предоставленногоkind
. Диалекты, которые хотят поддерживать более быструю реализацию, должны реализовать этот метод.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
get_pk_constraint(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) ReflectedPrimaryKeyConstraint ¶ Возвращает информацию об ограничении первичного ключа для table_name`.
Учитывая
Connection
, строкуtable_name
и необязательную строкуschema
, верните информацию о первичном ключе в виде словаря, соответствующего словарюReflectedPrimaryKeyConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_pk_constraint()
.
-
method
sqlalchemy.engine.Dialect.
get_schema_names(connection: Connection, **kw: Any) List[str] ¶ Возвращает список всех имен схем, доступных в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_schema_names()
.
-
method
sqlalchemy.engine.Dialect.
get_sequence_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ Возвращает список всех имен последовательностей, имеющихся в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_sequence_names()
.- Параметры:
schema – имя схемы для запроса, если не используется схема по умолчанию.
Добавлено в версии 1.4.
-
method
sqlalchemy.engine.Dialect.
get_table_comment(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) ReflectedTableComment ¶ Возвращает «комментарий» для таблицы, идентифицированной
table_name
.Учитывая строку
table_name
и необязательную строкуschema
, вернуть информацию о комментариях к таблице в виде словаря, соответствующего словарюReflectedTableComment
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_table_comment()
.- поднять:
NotImplementedError
для диалектов, которые не поддерживают комментарии.
Добавлено в версии 1.2.
-
method
sqlalchemy.engine.Dialect.
get_table_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ Возвращает список имен таблиц для
schema
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_table_names()
.
-
method
sqlalchemy.engine.Dialect.
get_table_options(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) Dict[str, Any] ¶ Возвращает словарь опций, заданных при создании
table_name
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_table_options()
.
-
method
sqlalchemy.engine.Dialect.
get_temp_table_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ Возвращает список имен временных таблиц на данном соединении, если это поддерживается базовым бэкендом.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_temp_table_names()
.
-
method
sqlalchemy.engine.Dialect.
get_temp_view_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ Возвращает список временных имен представлений на данном соединении, если это поддерживается базовым бэкендом.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_temp_view_names()
.
-
method
sqlalchemy.engine.Dialect.
get_unique_constraints(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) List[ReflectedUniqueConstraint] ¶ Возвращает информацию об уникальных ограничениях в
table_name
.Учитывая строку
table_name
и необязательную строкуschema
, возвращает уникальную информацию об ограничениях в виде списка dicts, соответствующего словарюReflectedUniqueConstraint
.Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_unique_constraints()
.
-
method
sqlalchemy.engine.Dialect.
get_view_definition(connection: Connection, view_name: str, schema: Optional[str] = None, **kw: Any) str ¶ Возвращает обычное или материализованное определение представления.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_view_definition()
.Учитывая
Connection
, строкуview_name
и необязательную строкуschema
, верните определение представления.
-
method
sqlalchemy.engine.Dialect.
get_view_names(connection: Connection, schema: Optional[str] = None, **kw: Any) List[str] ¶ Возвращает список всех имен нематериализованных представлений, доступных в базе данных.
Это внутренний метод диалекта. Приложения должны использовать
Inspector.get_view_names()
.- Параметры:
schema – имя схемы для запроса, если не используется схема по умолчанию.
-
method
sqlalchemy.engine.Dialect.
has_index(connection: Connection, table_name: str, index_name: str, schema: Optional[str] = None, **kw: Any) bool ¶ Проверка существования определенного имени индекса в базе данных.
Учитывая объект
Connection
, строкуtable_name
и строку index name, возвращаетTrue
, если индекс данного имени в данной таблице существует,False
иначе.В
DefaultDialect
это реализовано в методахDialect.has_table()
иDialect.get_indexes()
, однако диалекты могут реализовать более производительную версию.Это внутренний метод диалекта. Приложения должны использовать
Inspector.has_index()
.Добавлено в версии 1.4.
-
method
sqlalchemy.engine.Dialect.
has_schema(connection: Connection, schema_name: str, **kw: Any) bool ¶ Проверьте существование определенного имени схемы в базе данных.
Учитывая объект
Connection
, строкуschema_name
, возвращаетTrue
, если схема данного существует,False
иначе.В
DefaultDialect
это реализовано путем проверки наличияschema_name
среди схем, возвращаемыхDialect.get_schema_names()
, однако диалекты могут реализовать более производительную версию.Это внутренний метод диалекта. Приложения должны использовать
Inspector.has_schema()
.Добавлено в версии 2.0.
-
method
sqlalchemy.engine.Dialect.
has_sequence(connection: Connection, sequence_name: str, schema: Optional[str] = None, **kw: Any) bool ¶ Проверка существования определенной последовательности в базе данных.
Учитывая объект
Connection
и строку имя_последовательности, возвращаетTrue
, если данная последовательность существует в базе данных,False
в противном случае.Это внутренний метод диалекта. Приложения должны использовать
Inspector.has_sequence()
.
-
method
sqlalchemy.engine.Dialect.
has_table(connection: Connection, table_name: str, schema: Optional[str] = None, **kw: Any) bool ¶ Для внутреннего использования диалекта, проверка существования определенной таблицы или представления в базе данных.
Учитывая объект
Connection
, строку table_name и необязательное имя схемы, возвращает True, если данная таблица существует в базе данных, False в противном случае.Этот метод служит базовой реализацией публичного метода
Inspector.has_table()
, а также используется для реализации поведения «checkfirst» для таких методов, какTable.create()
иMetaData.create_all()
.Примечание
Этот метод используется внутри SQLAlchemy и публикуется для того, чтобы сторонние диалекты могли предоставить его реализацию. Это не публичный API для проверки наличия таблицы. Пожалуйста, используйте метод
Inspector.has_table()
.Изменено в версии 2.0:::
Dialect.has_table()
теперь формально поддерживает проверку дополнительных таблицеподобных объектов:любые типы представлений (простые или материализованные)
временные таблицы любого вида
Ранее эти две проверки не были формально определены, и различные диалекты могли отличаться по своему поведению. Теперь набор тестов диалектов включает тесты для всех этих типов объектов, и диалекты в той степени, в которой опорная база данных поддерживает представления или временные таблицы, должны стремиться поддерживать нахождение этих объектов для полного соответствия требованиям.
-
attribute
sqlalchemy.engine.Dialect.
has_terminate: bool¶ Имеет ли этот диалект отдельную реализацию «terminate», которая не блокирует и не требует ожидания.
-
attribute
sqlalchemy.engine.Dialect.
identifier_preparer: IdentifierPreparer¶ Этот элемент будет ссылаться на экземпляр
IdentifierPreparer
после построенияDefaultDialect
.
-
classmethod
sqlalchemy.engine.Dialect.
import_dbapi() module ¶ Импортируйте модуль DBAPI, который используется этим диалектом.
Возвращенный здесь объект модуля Python будет присвоен в качестве переменной экземпляра построенному диалекту под именем
.dbapi
.Изменено в версии 2.0: Метод класса
Dialect.import_dbapi()
переименован из предыдущего метода.Dialect.dbapi()
, который был бы заменен при инстанцировании диалекта самим модулем DBAPI, таким образом, используя одно и то же имя двумя разными способами. Если метод класса.Dialect.dbapi()
присутствует в стороннем диалекте, он будет использован, и будет выдано предупреждение об устаревании.
-
attribute
sqlalchemy.engine.Dialect.
include_set_input_sizes: Optional[Set[Any]]¶ набор объектов типа DBAPI, которые должны быть включены в автоматические вызовы cursor.setinputsizes().
Это используется, только если bind_typing имеет значение BindTyping.SET_INPUT_SIZES
-
method
sqlalchemy.engine.Dialect.
initialize(connection: Connection) None ¶ Вызывается во время стратегического создания диалекта с подключением.
Позволяет диалектам настраивать опции на основе информации о версии сервера или других свойств.
Передаваемое здесь соединение является объектом SQLAlchemy Connection с полными возможностями.
Метод initialize() базового диалекта должен вызываться через super().
Примечание
начиная с SQLAlchemy 1.4, этот метод вызывается перед вызовом любых крючков
Dialect.on_connect()
.
-
attribute
sqlalchemy.engine.Dialect.
inline_comments: bool¶ Указывает, что диалект поддерживает комментарии DDL, которые встроены в определение таблицы или столбца. Если False, это означает, что для установки комментариев таблиц и столбцов необходимо использовать ALTER.
-
attribute
sqlalchemy.engine.Dialect.
insert_executemany_returning: bool¶ диалект / драйвер / база данных поддерживает некоторые средства обеспечения поддержки INSERT…RETURNING при использовании dialect.do_executemany().
-
attribute
sqlalchemy.engine.Dialect.
insert_executemany_returning_sort_by_parameter_order: bool¶ диалект / драйвер / база данных поддерживает некоторые средства обеспечения поддержки INSERT…RETURNING, когда dialect.do_executemany() используется вместе с установленным параметром
Insert.returning.sort_by_parameter_order
.
-
attribute
sqlalchemy.engine.Dialect.
insert_returning: bool¶ если диалект поддерживает RETURNING с INSERT
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
insertmanyvalues_implicit_sentinel: InsertmanyvaluesSentinelOpts¶ Опции, указывающие, что база данных поддерживает форму массового INSERT, в которой автоинкрементный целочисленный первичный ключ может надежно использоваться в качестве порядка для вставляемых строк.
Добавлено в версии 2.0.10.
-
attribute
sqlalchemy.engine.Dialect.
insertmanyvalues_max_parameters: int¶ Альтернатива insertmanyvalues_page_size, дополнительно ограничивает размер страницы в зависимости от общего количества параметров в операторе.
-
attribute
sqlalchemy.engine.Dialect.
insertmanyvalues_page_size: int¶ Количество строк, выводимых в отдельный оператор INSERT..VALUES() для выполнения
ExecuteStyle.INSERTMANYVALUES
.В диалекте по умолчанию это значение равно 1000.
Добавлено в версии 2.0.
См.также
Connection.execution_options.insertmanyvalues_page_size
- вариант выполнения, доступный дляConnection
, утверждений
-
attribute
sqlalchemy.engine.Dialect.
is_async: bool¶ Предназначен ли этот диалект для использования в asyncio.
-
method
sqlalchemy.engine.Dialect.
is_disconnect(e: Exception, connection: Optional[Union[PoolProxiedConnection, DBAPIConnection]], cursor: Optional[DBAPICursor]) bool ¶ Возвращает True, если данная ошибка DB-API указывает на недействительное соединение
-
attribute
sqlalchemy.engine.Dialect.
label_length: Optional[int]¶ опционально определяемая пользователем максимальная длина для меток SQL
-
classmethod
sqlalchemy.engine.Dialect.
load_provisioning() None ¶ настроить модуль provision.py для этого диалекта.
Для диалектов, включающих модуль provision.py, который устанавливает последователей provisioning, этот метод должен инициировать этот процесс.
Типичная реализация выглядит следующим образом:
@classmethod def load_provisioning(cls): __import__("mydialect.provision")
Метод по умолчанию предполагает наличие модуля с именем
provision.py
внутри пакета-владельца текущего диалекта, основываясь на атрибуте__module__
:@classmethod def load_provisioning(cls): package = ".".join(cls.__module__.split(".")[0:-1]) try: __import__(package + ".provision") except ImportError: pass
Добавлено в версии 1.3.14.
-
attribute
sqlalchemy.engine.Dialect.
loaded_dbapi¶ то же самое, что и .dbapi, но никогда не является None; приведет к ошибке, если DBAPI не был установлен.
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
max_identifier_length: int¶ Максимальная длина имен идентификаторов.
-
attribute
sqlalchemy.engine.Dialect.
name: str¶ идентификационное имя для диалекта с точки зрения DBAPI-нейтральности (например, „sqlite“)
-
method
sqlalchemy.engine.Dialect.
normalize_name(name: str) str ¶ преобразовать заданное имя в нижний регистр, если оно определено как нечувствительное к регистру.
Этот метод используется, только если диалект определяет require_name_normalize=True.
-
method
sqlalchemy.engine.Dialect.
on_connect() Optional[Callable[[Any], Any]] ¶ возвращает вызываемый файл, который устанавливает вновь созданное DBAPI-соединение.
Вызываемый элемент должен принимать единственный аргумент «conn», который представляет собой само соединение DBAPI. Внутренний вызываемый модуль не имеет возвращаемого значения.
Например:
class MyDialect(default.DefaultDialect): # ... def on_connect(self): def do_on_connect(connection): connection.execute("SET SPECIAL FLAGS etc") return do_on_connect
Этот параметр используется для установки общих для диалекта опций для каждого соединения, таких как режимы изоляции, режимы Unicode и т.д.
Вызываемая переменная «do_on_connect» вызывается с помощью крючка события
PoolEvents.connect()
, затем разворачивает соединение DBAPI и передает его в вызываемую переменную.Изменено в версии 1.4: хук on_connect больше не вызывается дважды для первого соединения диалекта. Однако хук on_connect по-прежнему вызывается перед методом
Dialect.initialize()
.Изменено в версии 1.4.3: хук on_connect вызывается из нового метода on_connect_url, который передает URL, использованный для создания аргументов подключения. Диалекты могут реализовать on_connect_url вместо on_connect, если им нужен объект URL, который был использован для соединения, чтобы получить дополнительный контекст.
Если возвращается None, то слушатель событий не создается.
- Результат:
вызываемый объект, принимающий в качестве аргумента одно соединение DBAPI, или None.
См.также
Dialect.connect()
- позволяет управлять самой последовательностью DBAPIconnect()
.Dialect.on_connect_url()
- заменяетDialect.on_connect()
, чтобы также получить объектURL
в контексте.
-
method
sqlalchemy.engine.Dialect.
on_connect_url(url: URL) Optional[Callable[[Any], Any]] ¶ возвращает вызываемый файл, который устанавливает вновь созданное DBAPI-соединение.
Этот метод представляет собой новый хук, который заменяет метод
Dialect.on_connect()
, если он реализован в диалекте. Когда он не реализован диалектом, он вызывает методDialect.on_connect()
напрямую, чтобы сохранить совместимость с существующими диалектами. Для ожидаемого методаDialect.on_connect()
не предусмотрено никаких изъятий.Вызываемый элемент должен принимать единственный аргумент «conn», который представляет собой само соединение DBAPI. Внутренний вызываемый модуль не имеет возвращаемого значения.
Например:
class MyDialect(default.DefaultDialect): # ... def on_connect_url(self, url): def do_on_connect(connection): connection.execute("SET SPECIAL FLAGS etc") return do_on_connect
Этот параметр используется для установки общих для диалекта опций для каждого соединения, таких как режимы изоляции, режимы Unicode и т.д.
Этот метод отличается от
Dialect.on_connect()
тем, что ему передается объектURL
, имеющий отношение к аргументам подключения. Обычно единственный способ получить это из хукаDialect.on_connect()
- посмотреть на самомEngine
, однако этот объект URL может быть заменен плагинами.Примечание
Реализация
Dialect.on_connect_url()
по умолчанию заключается в вызове методаDialect.on_connect()
. Поэтому, если диалект реализует этот метод, методDialect.on_connect()
не будет вызван, если только переопределяющий диалект не вызовет его непосредственно отсюда.Добавлено в версии 1.4.3: добавил
Dialect.on_connect_url()
, который обычно вызываетDialect.on_connect()
.- Параметры:
url – объект
URL
, представляющийURL
, который был передан методуDialect.create_connect_args()
.- Результат:
вызываемый объект, принимающий в качестве аргумента одно соединение DBAPI, или None.
См.также
-
attribute
sqlalchemy.engine.Dialect.
paramstyle: str¶ paramstyle, который будет использоваться (некоторые DB-API поддерживают несколько paramstyle).
-
attribute
sqlalchemy.engine.Dialect.
positional: bool¶ True, если параметр paramstyle для этого диалекта является позиционным.
-
attribute
sqlalchemy.engine.Dialect.
preexecute_autoincrement_sequences: bool¶ Истина, если „неявные“ функции первичного ключа должны быть выполнены отдельно, чтобы получить их значение, если не используется RETURNING.
В настоящее время это ориентировано на PostgreSQL, когда параметр
implicit_returning=False
используется на объектеTable
.
-
attribute
sqlalchemy.engine.Dialect.
preparer: Type[IdentifierPreparer]¶ класс
IdentifierPreparer
, используемый для цитирования идентификаторов.
-
attribute
sqlalchemy.engine.Dialect.
reflection_options: Sequence[str] = ()¶ Последовательность строковых имен, указывающих на аргументы ключевых слов, которые могут быть установлены на объекте
Table
, которые будут переданы как «опции отражения» при использованииTable.autoload_with
.Текущий пример - «oracle_resolve_synonyms» в диалекте Oracle.
-
method
sqlalchemy.engine.Dialect.
reset_isolation_level(dbapi_connection: DBAPIConnection) None ¶ Если дано соединение DBAPI, верните его изоляцию к значению по умолчанию.
Обратите внимание, что это метод уровня диалекта, который используется как часть реализации средств уровня изоляции
Connection
иEngine
; эти API следует предпочесть для большинства типичных случаев использования.См.также
Connection.get_isolation_level()
- просмотр текущего уровняConnection.default_isolation_level
- просмотр уровня по умолчаниюConnection.execution_options.isolation_level
- устанавливается на уровень изоляцииConnection
create_engine.isolation_level
- устанавливается на уровень изоляцииEngine
-
attribute
sqlalchemy.engine.Dialect.
returns_native_bytes: bool¶ указывает, возвращаются ли драйвером объекты Python bytes() для «бинарных» типов данных SQL.
Добавлено в версии 2.0.11.
-
attribute
sqlalchemy.engine.Dialect.
sequences_optional: bool¶ Если True, указывает, должен ли параметр
Sequence.optional
в конструкцииSequence
сигнализировать, чтобы не генерировать CREATE SEQUENCE. Применяется только в диалектах, поддерживающих последовательности. В настоящее время используется только для того, чтобы разрешить PostgreSQL SERIAL для столбца, который определяет Sequence() для использования на других бэкендах.
-
attribute
sqlalchemy.engine.Dialect.
server_side_cursors: bool¶ deprecated; указывает, следует ли диалекту пытаться использовать курсоры на стороне сервера по умолчанию
-
attribute
sqlalchemy.engine.Dialect.
server_version_info: Optional[Tuple[Any, ...]]¶ кортеж, содержащий номер версии используемого бэкенда БД.
Это значение доступно только для поддерживающих диалектов и обычно заполняется во время первоначального подключения к базе данных.
-
method
sqlalchemy.engine.Dialect.
set_connection_execution_options(connection: Connection, opts: CoreExecuteOptionsParameter) None ¶ Установите варианты выполнения для данного соединения.
Это реализуется
DefaultDialect
для того, чтобы реализовать опцию выполненияConnection.execution_options.isolation_level
. Диалекты могут перехватывать различные варианты выполнения, которые могут потребовать изменения состояния на конкретном соединении DBAPI.Добавлено в версии 1.4.
-
method
sqlalchemy.engine.Dialect.
set_engine_execution_options(engine: Engine, opts: CoreExecuteOptionsParameter) None ¶ Установите варианты выполнения для данного двигателя.
Это реализуется
DefaultDialect
для создания крючков событий для новых экземпляровConnection
, созданных даннымEngine
, которые затем вызовут методDialect.set_connection_execution_options()
для этого соединения.
-
method
sqlalchemy.engine.Dialect.
set_isolation_level(dbapi_connection: DBAPIConnection, level: Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']) None ¶ Учитывая соединение DBAPI, установите его уровень изоляции.
Обратите внимание, что это метод уровня диалекта, который используется как часть реализации средств уровня изоляции
Connection
иEngine
; эти API следует предпочесть для большинства типичных случаев использования.Если диалект также реализует метод
Dialect.get_isolation_level_values()
, то заданный уровень гарантированно будет одним из строковых имен в этой последовательности, и методу не нужно будет предвидеть ошибку поиска.См.также
Connection.get_isolation_level()
- просмотр текущего уровняConnection.default_isolation_level
- просмотр уровня по умолчаниюConnection.execution_options.isolation_level
- устанавливается на уровень изоляцииConnection
create_engine.isolation_level
- устанавливается на уровень изоляцииEngine
-
attribute
sqlalchemy.engine.Dialect.
statement_compiler: Type[SQLCompiler]¶ класс
Compiled
, используемый для компиляции SQL-запросов
-
attribute
sqlalchemy.engine.Dialect.
supports_alter: bool¶ True
если база данных поддерживаетALTER TABLE
- используется только для генерации ограничений внешнего ключа в определенных обстоятельствах
-
attribute
sqlalchemy.engine.Dialect.
supports_comments: bool¶ Указывает, что диалект поддерживает комментирование DDL для таблиц и столбцов.
-
attribute
sqlalchemy.engine.Dialect.
supports_constraint_comments: bool¶ Указывает, поддерживает ли диалект комментарий DDL к ограничениям.
-
attribute
sqlalchemy.engine.Dialect.
supports_default_metavalue: bool¶ Диалект поддерживает синтаксис INSERT…(col) VALUES (DEFAULT).
Большинство баз данных поддерживают это в той или иной форме, например, SQLite поддерживает это с помощью
VALUES (NULL)
. MS SQL Server также поддерживает этот синтаксис, однако это единственный включенный диалект, где мы отключили эту функцию, так как MSSQL не поддерживает поле для столбца IDENTITY, который обычно является тем местом, где мы хотим использовать эту функцию.
-
attribute
sqlalchemy.engine.Dialect.
supports_default_values: bool¶ диалект поддерживает INSERT… синтаксис DEFAULT VALUES
-
attribute
sqlalchemy.engine.Dialect.
supports_empty_insert: bool¶ dialect поддерживает INSERT () VALUES (), т.е. обычный INSERT без столбцов.
Обычно это не поддерживается; для «пустой» вставки обычно используется либо «INSERT…DEFAULT VALUES», либо «INSERT … (col) VALUES (DEFAULT)».
-
attribute
sqlalchemy.engine.Dialect.
supports_identity_columns: bool¶ целевая база данных поддерживает IDENTITY
-
attribute
sqlalchemy.engine.Dialect.
supports_multivalues_insert: bool¶ Целевая база данных поддерживает INSERT…VALUES с несколькими наборами значений, т.е. INSERT INTO table (cols) VALUES (…), (…), (…), ….
-
attribute
sqlalchemy.engine.Dialect.
supports_native_boolean: bool¶ Указывает, поддерживает ли диалект встроенную конструкцию boolean. Это не позволит
Boolean
генерировать ограничение CHECK при использовании этого типа.
-
attribute
sqlalchemy.engine.Dialect.
supports_native_decimal: bool¶ указывает, обрабатываются ли и возвращаются ли объекты Decimal для точных числовых типов, или же возвращаются плавающие числа
-
attribute
sqlalchemy.engine.Dialect.
supports_native_enum: bool¶ Указывает, поддерживает ли диалект родную конструкцию ENUM. Это предотвратит
Enum
от генерации ограничения CHECK, когда этот тип используется в «родном» режиме.
-
attribute
sqlalchemy.engine.Dialect.
supports_native_uuid: bool¶ указывает, обрабатываются ли объекты Python UUID() нативно драйвером для типов данных SQL UUID.
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
supports_sane_multi_rowcount: bool¶ Укажите, правильно ли диалект реализует подсчет рядов для операторов
UPDATE
иDELETE
при выполнении через executemany.
-
attribute
sqlalchemy.engine.Dialect.
supports_sane_rowcount: bool¶ Укажите, правильно ли диалект реализует подсчет рядов для операторов
UPDATE
иDELETE
.
-
attribute
sqlalchemy.engine.Dialect.
supports_sequences: bool¶ Указывает, поддерживает ли диалект CREATE SEQUENCE или подобное.
-
attribute
sqlalchemy.engine.Dialect.
supports_server_side_cursors: bool¶ указывает, поддерживает ли диалект курсоры на стороне сервера
-
attribute
sqlalchemy.engine.Dialect.
supports_simple_order_by_label: bool¶ целевая база данных поддерживает ORDER BY <labelname>, где <labelname> относится к метке в предложении columns в SELECT
-
attribute
sqlalchemy.engine.Dialect.
supports_statement_cache: bool = True¶ указывает, поддерживает ли этот диалект кэширование.
Все диалекты, совместимые с кэшированием утверждений, должны установить этот флаг в True непосредственно в каждом классе диалекта и подклассе, который его поддерживает. SQLAlchemy проверяет, что этот флаг локально присутствует в каждом подклассе диалекта, прежде чем использовать кэширование утверждений. Это необходимо для обеспечения безопасности старых или новых диалектов, которые еще не полностью протестированы на совместимость с кэшированием операторов SQL.
Добавлено в версии 1.4.5.
-
attribute
sqlalchemy.engine.Dialect.
tuple_in_values: bool¶ целевая база данных поддерживает кортеж IN, т.е. (x, y) IN ((q, p), (r, z))
-
attribute
sqlalchemy.engine.Dialect.
type_compiler: Any¶ наследие; это класс TypeCompiler на уровне класса, экземпляр TypeCompiler на уровне экземпляра.
Вместо этого обратитесь к type_compiler_instance.
-
attribute
sqlalchemy.engine.Dialect.
type_compiler_cls: ClassVar[Type[TypeCompiler]]¶ класс
Compiled
, используемый для компиляции объектов типа SQLДобавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
type_compiler_instance: TypeCompiler¶ экземпляр класса
Compiled
, используемого для компиляции объектов типа SQLДобавлено в версии 2.0.
-
classmethod
sqlalchemy.engine.Dialect.
type_descriptor(typeobj: TypeEngine[_T]) TypeEngine[_T] ¶ Преобразование общего типа в тип, специфичный для диалекта.
Диалектные классы обычно используют для этого функцию
adapt_type()
в модуле типов.Возвращаемый результат кэшируется для класса диалекта, поэтому не может содержать состояние экземпляра диалекта.
-
attribute
sqlalchemy.engine.Dialect.
update_executemany_returning: bool¶ диалект поддерживает UPDATE…RETURNING с executemany.
-
attribute
sqlalchemy.engine.Dialect.
update_returning: bool¶ если диалект поддерживает RETURNING с UPDATE
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
update_returning_multifrom: bool¶ если диалект поддерживает RETURNING с UPDATE..FROM
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
use_insertmanyvalues: bool¶ если True, указывает, что следует использовать функциональность «insertmanyvalues», чтобы обеспечить поведение
insert_executemany_returning
, если это возможно.На практике установка значения True означает:
Если
supports_multivalues_insert
,insert_returning
иuse_insertmanyvalues
равны True, компилятор SQL создаст INSERT, который будет интерпретированDefaultDialect
как выполнениеExecuteStyle.INSERTMANYVALUES
, что позволяет выполнять INSERT многих строк с RETURNING, переписывая однострочный оператор INSERT с несколькими пунктами VALUES, а также выполняя оператор несколько раз для серии пакетов, когда задано большое количество строк.Параметр имеет значение False для диалекта по умолчанию и устанавливается в True для внутренних диалектов SQLAlchemy - SQLite, MySQL/MariaDB, PostgreSQL, SQL Server. Он остается в False для Oracle, который обеспечивает встроенную поддержку «executemany with RETURNING», а также не поддерживает
supports_multivalues_insert
. Для MySQL/MariaDB те диалекты MySQL, которые не поддерживают RETURNING, не будут сообщатьinsert_executemany_returning
как True.Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.Dialect.
use_insertmanyvalues_wo_returning: bool¶ если True, и use_insertmanyvalues также True, операторы INSERT, которые не включают RETURNING, также будут использовать «insertmanyvalues».
Добавлено в версии 2.0.
-
attribute
- class sqlalchemy.engine.default.DefaultExecutionContext¶
Members
compiled, connection, create_cursor(), current_parameters, cursor, dialect, engine, execute_style, executemany, fetchall_for_returning(), get_current_parameters(), get_lastrowid(), get_out_parameter_values(), get_result_processor(), handle_dbapi_exception(), invoked_statement, isinsert, isupdate, lastrow_has_defaults(), no_parameters, parameters, post_exec(), postfetch_cols, pre_exec(), prefetch_cols, root_connection
Классная подпись
класс
sqlalchemy.engine.default.DefaultExecutionContext
(sqlalchemy.engine.interfaces.ExecutionContext
)-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
compiled: Optional[Compiled] = None¶ если передан в конструктор, выполняемый объект sqlalchemy.engine.base.Compiled
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
connection: Connection¶ Объект соединения, который может свободно использоваться генераторами значений по умолчанию для выполнения SQL. Это соединение должно ссылаться на то же самое базовое соединение/транзакционные ресурсы root_connection.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
create_cursor()¶ Возвращает новый курсор, созданный на основе соединения этого ExecutionContext.
Некоторые диалекты могут захотеть изменить поведение connection.cursor(), например, postgresql, который может возвращать курсор PG «на стороне сервера».
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
current_parameters: Optional[_CoreSingleExecuteParams] = None¶ Словарь параметров, применяемых к текущей строке.
Этот атрибут доступен только в контексте определяемой пользователем функции генерации по умолчанию, например, как описано в Контекстно-зависимые функции по умолчанию. Он состоит из словаря, включающего записи для каждой пары столбец/значение, которая должна быть частью оператора INSERT или UPDATE. Ключами словаря будет ключевое значение каждого
Column
, которое обычно является синонимом имени.Обратите внимание, что атрибут
DefaultExecutionContext.current_parameters
не учитывает «многозначность» методаInsert.values()
. Следует предпочесть методDefaultExecutionContext.get_current_parameters()
.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
cursor: DBAPICursor¶ Курсор DB-API, полученный из соединения
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
dialect: Dialect¶ диалект, который создал этот ExecutionContext.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
engine: Engine¶ двигатель, с которым связано Соединение
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
execute_style: ExecuteStyle = 0¶ стиль метода курсора DBAPI, который будет использоваться для выполнения оператора.
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
executemany: bool¶ Истина, если контекст имеет список из более чем одного набора параметров.
Исторически этот атрибут связан с тем, будет ли использоваться
cursor.execute()
илиcursor.executemany()
. Теперь он также может означать, что может использоваться «insertmanyvalues», что указывает на один или несколько вызововcursor.execute()
.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
fetchall_for_returning(cursor)¶ Для получения результата RETURNING выполните cursor.fetchall() из курсора DBAPI.
Это специфичный для диалектов хук для диалектов, которые имеют особые соображения при обращении к строкам, доставленным для оператора «RETURNING». По умолчанию используется
cursor.fetchall()
.В настоящее время этот крючок используется только функцией insertmanyvalues. Диалектам, которые не устанавливают
use_insertmanyvalues=True
, не нужно учитывать этот крючок.Добавлено в версии 2.0.10.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
get_current_parameters(isolate_multiinsert_groups=True)¶ Возвращает словарь параметров, примененных к текущей строке.
Этот метод можно использовать только в контексте определяемой пользователем функции генерации по умолчанию, например, как описано в Контекстно-зависимые функции по умолчанию. При вызове возвращается словарь, включающий записи для каждой пары столбец/значение, которая является частью оператора INSERT или UPDATE. Ключами словаря будет ключевое значение каждого
Column
, которое обычно является синонимом имени.- Параметры:
isolate_multiinsert_groups=True – указывает, что многозначные конструкции INSERT, созданные с помощью
Insert.values()
, должны обрабатываться путем возврата только подмножества параметров, локальных для текущего вызова по умолчанию столбца. ПриFalse
возвращаются необработанные параметры оператора, включая соглашение об именовании, используемое в случае многозначного INSERT.
Добавлено в версии 1.2: добавлен атрибут
DefaultExecutionContext.get_current_parameters()
, который предоставляет больше функциональности, чем существующий атрибутDefaultExecutionContext.current_parameters
.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
get_lastrowid()¶ возвращает self.cursor.lastrowid, или эквивалент, после INSERT.
Это может включать вызов специальных функций курсора, выдачу нового SELECT на курсоре (или нового курсора), или возврат сохраненного значения, которое было вычислено в post_exec().
Эта функция будет вызвана только для диалектов, которые поддерживают «неявное» создание первичного ключа, сохраняют значение False для функции preexecute_autoincrement_sequences, и когда к утверждению не было привязано явное значение id.
Функция вызывается один раз для оператора INSERT, который должен вернуть последний вставленный первичный ключ для тех диалектов, которые используют концепцию lastrowid. В этих случаях она вызывается непосредственно после
ExecutionContext.post_exec()
.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
get_out_parameter_values(names)¶ Возвращает последовательность значений параметров OUT из курсора.
Для диалектов, поддерживающих параметры OUT, этот метод будет вызван при наличии объекта
SQLCompiler
, у которого установлен флагSQLCompiler.has_out_parameters
. Этот флаг, в свою очередь, будет установлен в True, если в самом операторе есть объектыBindParameter
с установленным флагом.isoutparam
, которые потребляются методомSQLCompiler.visit_bindparam()
. Если компилятор диалекта производит объектыBindParameter
с установленным флагом.isoutparam
, которые не обрабатываются методомSQLCompiler.visit_bindparam()
, он должен явно установить этот флаг.В метод передается список имен, которые были отображены для каждого связанного параметра. Метод должен вернуть последовательность значений, соответствующих списку объектов параметров. В отличие от предыдущих версий SQLAlchemy, значения могут быть сырыми значениями из DBAPI; контекст выполнения применит соответствующий обработчик типов на основе того, что присутствует в self.compiled.binds, и обновит значения. Затем обработанный словарь будет доступен через коллекцию
.out_parameters
на объекте результата. Обратите внимание, что SQLAlchemy 1.4 имеет несколько видов объекта результата как часть перехода на 2.0.Добавлено в версии 1.4: - added
ExecutionContext.get_out_parameter_values()
, which is invoked automatically by theDefaultExecutionContext
when there areBindParameter
objects with the.isoutparam
flag set. This replaces the practice of setting out parameters within the now-removedget_result_proxy()
method.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
get_result_processor(type_, colname, coltype)¶ Возвращает «обработчик результатов» для заданного типа, представленного в cursor.description.
Это реализация по умолчанию, которую диалекты могут переопределить для контекстно-зависимой обработки типов результатов.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
handle_dbapi_exception(e)¶ Получение исключения DBAPI, возникшего при выполнении, получении результата и т.д.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
invoked_statement: Optional[Executable] = None¶ Объект оператора Executable, который был задан в первую очередь.
Структурно он должен быть эквивалентен compiled.statement, но не обязательно тот же объект, так как в сценарии кэширования скомпилированная форма будет извлечена из кэша.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
isinsert: bool = False¶ Истина, если оператор является INSERT.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
isupdate: bool = False¶ True, если оператор является UPDATE.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
lastrow_has_defaults()¶ Возвращает True, если последняя строка INSERT или UPDATE содержала инлайны или значения по умолчанию со стороны базы данных.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
no_parameters: bool¶ Истина, если стиль выполнения не использует параметры
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
parameters: _DBAPIMultiExecuteParams¶ связывание параметров, передаваемых методам execute() или exec_driver_sql().
Они всегда хранятся в виде списка записей параметров. Одноэлементный список соответствует вызову
cursor.execute()
, а многоэлементный -cursor.executemany()
, за исключением случаяExecuteStyle.INSERTMANYVALUES
, который будет использоватьcursor.execute()
один или несколько раз.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
post_exec()¶ Вызывается после выполнения скомпилированного оператора.
Если этому ExecutionContext был передан скомпилированный оператор, то после завершения этого метода должны быть доступны данные last_insert_ids, last_inserted_params и т.д.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
postfetch_cols: util.generic_fn_descriptor[Optional[Sequence[Column[Any]]]]¶ список объектов Column, для которых было отработано значение по умолчанию или встроенное значение выражения SQL на стороне сервера. Применяется к вставкам и обновлениям.
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
pre_exec()¶ Вызывается перед выполнением скомпилированного оператора.
Если этому ExecutionContext был передан скомпилированный оператор, то члены данных statement и parameters должны быть инициализированы после завершения выполнения этого оператора.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
prefetch_cols: util.generic_fn_descriptor[Optional[Sequence[Column[Any]]]]¶ список объектов Column, для которых было отработано умолчание на стороне клиента. Применяется к вставкам и обновлениям.
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
root_connection: Connection¶ Объект соединения, который является источником данного ExecutionContext.
-
attribute
- class sqlalchemy.engine.ExecutionContext¶
Members
compiled, connection, create_cursor(), cursor, dialect, engine, execute_style, executemany, fetchall_for_returning(), fire_sequence(), get_out_parameter_values(), get_rowcount(), handle_dbapi_exception(), invoked_statement, isinsert, isupdate, lastrow_has_defaults(), no_parameters, parameters, post_exec(), postfetch_cols, pre_exec(), prefetch_cols, root_connection, statement
Объект мессенджера для диалекта, который соответствует одному выполнению.
-
attribute
sqlalchemy.engine.ExecutionContext.
compiled: Optional[Compiled]¶ если передан в конструктор, выполняемый объект sqlalchemy.engine.base.Compiled
-
attribute
sqlalchemy.engine.ExecutionContext.
connection: Connection¶ Объект соединения, который может свободно использоваться генераторами значений по умолчанию для выполнения SQL. Это соединение должно ссылаться на то же самое базовое соединение/транзакционные ресурсы root_connection.
-
method
sqlalchemy.engine.ExecutionContext.
create_cursor() DBAPICursor ¶ Возвращает новый курсор, созданный на основе соединения этого ExecutionContext.
Некоторые диалекты могут захотеть изменить поведение connection.cursor(), например, postgresql, который может возвращать курсор PG «на стороне сервера».
-
attribute
sqlalchemy.engine.ExecutionContext.
cursor: DBAPICursor¶ Курсор DB-API, полученный из соединения
-
attribute
sqlalchemy.engine.ExecutionContext.
dialect: Dialect¶ диалект, который создал этот ExecutionContext.
-
attribute
sqlalchemy.engine.ExecutionContext.
engine: Engine¶ двигатель, с которым связано Соединение
-
attribute
sqlalchemy.engine.ExecutionContext.
execute_style: ExecuteStyle¶ стиль метода курсора DBAPI, который будет использоваться для выполнения оператора.
Добавлено в версии 2.0.
-
attribute
sqlalchemy.engine.ExecutionContext.
executemany: bool¶ Истина, если контекст имеет список из более чем одного набора параметров.
Исторически этот атрибут связан с тем, будет ли использоваться
cursor.execute()
илиcursor.executemany()
. Теперь он также может означать, что может использоваться «insertmanyvalues», что указывает на один или несколько вызововcursor.execute()
.
-
method
sqlalchemy.engine.ExecutionContext.
fetchall_for_returning(cursor: DBAPICursor) Sequence[Any] ¶ Для получения результата RETURNING выполните cursor.fetchall() из курсора DBAPI.
Это специфичный для диалектов хук для диалектов, которые имеют особые соображения при обращении к строкам, доставленным для оператора «RETURNING». По умолчанию используется
cursor.fetchall()
.В настоящее время этот крючок используется только функцией insertmanyvalues. Диалектам, которые не устанавливают
use_insertmanyvalues=True
, не нужно учитывать этот крючок.Добавлено в версии 2.0.10.
-
method
sqlalchemy.engine.ExecutionContext.
fire_sequence(seq: Sequence_SchemaItem, type_: Integer) int ¶ дано
Sequence
, вызвать его и вернуть следующее значение int
-
method
sqlalchemy.engine.ExecutionContext.
get_out_parameter_values(out_param_names: Sequence[str]) Sequence[Any] ¶ Возвращает последовательность значений параметров OUT из курсора.
Для диалектов, поддерживающих параметры OUT, этот метод будет вызван при наличии объекта
SQLCompiler
, у которого установлен флагSQLCompiler.has_out_parameters
. Этот флаг, в свою очередь, будет установлен в True, если в самом операторе есть объектыBindParameter
с установленным флагом.isoutparam
, которые потребляются методомSQLCompiler.visit_bindparam()
. Если компилятор диалекта производит объектыBindParameter
с установленным флагом.isoutparam
, которые не обрабатываются методомSQLCompiler.visit_bindparam()
, он должен явно установить этот флаг.В метод передается список имен, которые были отображены для каждого связанного параметра. Метод должен вернуть последовательность значений, соответствующих списку объектов параметров. В отличие от предыдущих версий SQLAlchemy, значения могут быть сырыми значениями из DBAPI; контекст выполнения применит соответствующий обработчик типов на основе того, что присутствует в self.compiled.binds, и обновит значения. Затем обработанный словарь будет доступен через коллекцию
.out_parameters
на объекте результата. Обратите внимание, что SQLAlchemy 1.4 имеет несколько видов объекта результата как часть перехода на 2.0.Добавлено в версии 1.4: - added
ExecutionContext.get_out_parameter_values()
, which is invoked automatically by theDefaultExecutionContext
when there areBindParameter
objects with the.isoutparam
flag set. This replaces the practice of setting out parameters within the now-removedget_result_proxy()
method.
-
method
sqlalchemy.engine.ExecutionContext.
get_rowcount() Optional[int] ¶ Возвращает значение DBAPI
cursor.rowcount
, или в некоторых случаях интерпретированное значение.Подробнее об этом смотрите
CursorResult.rowcount
.
-
method
sqlalchemy.engine.ExecutionContext.
handle_dbapi_exception(e: BaseException) None ¶ Получение исключения DBAPI, возникшего при выполнении, получении результата и т.д.
-
attribute
sqlalchemy.engine.ExecutionContext.
invoked_statement: Optional[Executable]¶ Объект оператора Executable, который был задан в первую очередь.
Структурно он должен быть эквивалентен compiled.statement, но не обязательно тот же объект, так как в сценарии кэширования скомпилированная форма будет извлечена из кэша.
-
attribute
sqlalchemy.engine.ExecutionContext.
isinsert: bool¶ Истина, если оператор является INSERT.
-
attribute
sqlalchemy.engine.ExecutionContext.
isupdate: bool¶ True, если оператор является UPDATE.
-
method
sqlalchemy.engine.ExecutionContext.
lastrow_has_defaults() bool ¶ Возвращает True, если последняя строка INSERT или UPDATE содержала инлайны или значения по умолчанию со стороны базы данных.
-
attribute
sqlalchemy.engine.ExecutionContext.
no_parameters: bool¶ Истина, если стиль выполнения не использует параметры
-
attribute
sqlalchemy.engine.ExecutionContext.
parameters: _AnyMultiExecuteParams¶ связывание параметров, передаваемых методам execute() или exec_driver_sql().
Они всегда хранятся в виде списка записей параметров. Одноэлементный список соответствует вызову
cursor.execute()
, а многоэлементный -cursor.executemany()
, за исключением случаяExecuteStyle.INSERTMANYVALUES
, который будет использоватьcursor.execute()
один или несколько раз.
-
method
sqlalchemy.engine.ExecutionContext.
post_exec() None ¶ Вызывается после выполнения скомпилированного оператора.
Если этому ExecutionContext был передан скомпилированный оператор, то после завершения этого метода должны быть доступны данные last_insert_ids, last_inserted_params и т.д.
-
attribute
sqlalchemy.engine.ExecutionContext.
postfetch_cols: util.generic_fn_descriptor[Optional[Sequence[Column[Any]]]]¶ список объектов Column, для которых было отработано значение по умолчанию или встроенное значение выражения SQL на стороне сервера. Применяется к вставкам и обновлениям.
-
method
sqlalchemy.engine.ExecutionContext.
pre_exec() None ¶ Вызывается перед выполнением скомпилированного оператора.
Если этому ExecutionContext был передан скомпилированный оператор, то члены данных statement и parameters должны быть инициализированы после завершения выполнения этого оператора.
-
attribute
sqlalchemy.engine.ExecutionContext.
prefetch_cols: util.generic_fn_descriptor[Optional[Sequence[Column[Any]]]]¶ список объектов Column, для которых было отработано умолчание на стороне клиента. Применяется к вставкам и обновлениям.
-
attribute
sqlalchemy.engine.ExecutionContext.
root_connection: Connection¶ Объект соединения, который является источником данного ExecutionContext.
-
attribute
sqlalchemy.engine.ExecutionContext.
statement: str¶ строковая версия оператора, который будет выполняться. Передается в конструктор или должна быть создана из объекта sql.Compiled к моменту завершения pre_exec().
-
attribute
- class sqlalchemy.sql.compiler.ExpandedState¶
представляет состояние для использования при создании «расширенных» и «посткомпиляционных» связанных параметров для оператора.
«Расширенные» параметры - это параметры, которые генерируются во время выполнения оператора в соответствии с количеством переданных параметров, наиболее ярким примером являются отдельные элементы внутри выражения IN.
Параметры «post compile» - это параметры, в которых значение SQL литерала будет отображаться в SQL операторе во время выполнения, а не передаваться драйверу в виде отдельных параметров.
Чтобы создать экземпляр
ExpandedState
, используйте методSQLCompiler.construct_expanded_state()
на любом экземпляреSQLCompiler
.Members
additional_parameters, parameter_expansion, parameters, positional_parameters, positiontup, processors, statement
Классная подпись
класс
sqlalchemy.sql.compiler.ExpandedState
(builtins.tuple
)-
attribute
sqlalchemy.sql.compiler.ExpandedState.
additional_parameters¶ синоним для
ExpandedState.parameters
.
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
parameter_expansion: Mapping[str, List[str]]¶ Отображение, представляющее промежуточную связь от исходного имени параметра к списку «расширенных» имен параметров, для тех параметров, которые были расширены.
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
parameters: _CoreSingleExecuteParams¶ Словарь параметров с полностью развернутыми параметрами.
Для утверждения, использующего именованные параметры, этот словарь будет точно соответствовать именам в утверждении. Для оператора, который использует позиционные параметры,
ExpandedState.positional_parameters
даст кортеж с набором позиционных параметров.
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
positional_parameters¶ Множество позиционных параметров для утверждений, которые были скомпилированы с использованием позиционного параметра.
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
positiontup: Optional[Sequence[str]]¶ Последовательность строковых имен, указывающих порядок позиционных параметров
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
processors: Mapping[str, _BindProcessorType[Any]]¶ отображение процессоров связанных значений
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
statement: str¶ Строковый SQL-запрос с полностью развернутыми параметрами
-
attribute
- class sqlalchemy.sql.compiler.GenericTypeCompiler¶
Members
Классная подпись
класс
sqlalchemy.sql.compiler.GenericTypeCompiler
(sqlalchemy.sql.compiler.TypeCompiler
)-
attribute
sqlalchemy.sql.compiler.GenericTypeCompiler.
ensure_kwarg: str = 'visit_\\w+'¶ наследуется от
TypeCompiler.ensure_kwarg
атрибутаTypeCompiler
регулярное выражение, указывающее имена методов, для которых метод должен принимать аргументы
**kw
.Класс будет проверять методы, соответствующие шаблону имени, и при необходимости украшать их, чтобы обеспечить прием параметров
**kw
.
-
attribute
- class sqlalchemy.log.Identified¶
- class sqlalchemy.sql.compiler.IdentifierPreparer¶
Members
__init__(), format_column(), format_label_name(), format_schema(), format_table(), format_table_seq(), quote(), quote_identifier(), quote_schema(), schema_for_object, unformat_identifiers(), validate_sql_phrase()
Обработка кавычек и сложения регистра идентификаторов на основе опций.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
__init__(dialect, initial_quote='"', final_quote=None, escape_quote='"', quote_case_sensitive_collations=True, omit_schema=False)¶ Создайте новый объект
IdentifierPreparer
.- initial_quote
Символ, с которого начинается разграниченный идентификатор.
- заключительная_цитата
Символ, завершающий разграниченный идентификатор. По умолчанию initial_quote.
- опустить_схему
Запретить добавление имени схемы. Полезно для баз данных, которые не поддерживают схемы.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_column(column, use_table=False, name=None, table_name=None, use_schema=False, anon_map=None)¶ Подготовьте имя столбца в кавычках.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_label_name(name, anon_map=None)¶ Подготовьте имя столбца в кавычках.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_schema(name)¶ Подготовьте цитируемое имя схемы.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_table(table, use_schema=True, name=None)¶ Подготовьте цитируемое имя таблицы и схемы.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_table_seq(table, use_schema=True)¶ Форматируйте имя таблицы и схему в виде кортежа.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
quote(ident: str, force: Optional[Any] = None) str ¶ Условное цитирование идентификатора.
Идентификатор заключается в кавычки, если он является зарезервированным словом, содержит символы, необходимые для кавычек, или является экземпляром
quoted_name
, который включаетquote
, установленный вTrue
.Подклассы могут переопределить этот параметр, чтобы обеспечить зависящее от базы данных поведение цитирования имен идентификаторов.
- Параметры:
ident – строковый идентификатор
force – не используется … устаревший:: 0.9 Параметр
IdentifierPreparer.quote.force
является устаревшим и будет удален в одном из будущих выпусков. Этот флаг не влияет на поведение методаIdentifierPreparer.quote()
; пожалуйста, обратитесь кquoted_name
.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
quote_identifier(value: str) str ¶ Процитируйте идентификатор.
Подклассы должны переопределить его, чтобы обеспечить поведение цитирования в зависимости от базы данных.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
quote_schema(schema: str, force: Optional[Any] = None) str ¶ Условное цитирование имени схемы.
Имя берется в кавычки, если оно является зарезервированным словом, содержит символы, необходимые для кавычек, или является экземпляром
quoted_name
, который включаетquote
, установленный вTrue
.Подклассы могут переопределить его, чтобы обеспечить зависящее от базы данных поведение цитирования имен схем.
- Параметры:
schema – строковое имя схемы
force – не используется … устаревший:: 0.9 Параметр
IdentifierPreparer.quote_schema.force
является устаревшим и будет удален в одном из будущих выпусков. Этот флаг не влияет на поведение методаIdentifierPreparer.quote()
; пожалуйста, обратитесь кquoted_name
.
-
attribute
sqlalchemy.sql.compiler.IdentifierPreparer.
schema_for_object: _SchemaForObjectCallable = operator.attrgetter('schema')¶ Возвращает атрибут .schema для объекта.
Для IdentifierPreparer по умолчанию схема для объекта всегда является значением атрибута «.schema». Если preparer заменяется на тот, который имеет непустую карту schema_translate_map, значение атрибута «.schema» отображается как символ, который будет преобразован в реальное имя схемы из карты после компиляции.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
unformat_identifiers(identifiers)¶ Распакуйте „schema.table.column“-подобные строки в компоненты.
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
validate_sql_phrase(element, reg)¶ фильтр последовательности ключевых слов.
фильтр для элементов, которые предназначены для представления последовательностей ключевых слов, таких как «INITIALLY», «INITIALLY DEFERRED» и т.д. никакие специальные символы не должны присутствовать.
Добавлено в версии 1.3.
-
method
- class sqlalchemy.sql.compiler.SQLCompiler¶
Реализация по умолчанию
Compiled
.Компилирует объекты
ClauseElement
в строки SQL.Members
__init__(), ansi_bind_rules, bind_names, bindname_escape_characters, binds, bindtemplate, compilation_bindtemplate, construct_expanded_state(), construct_params(), current_executable, default_from(), delete_extra_from_clause(), effective_returning, escaped_bind_names, get_select_precolumns(), group_by_clause(), has_out_parameters, implicit_returning, insert_prefetch, insert_single_values_expr, isupdate, literal_execute_params, order_by_clause(), params, positiontup, post_compile_params, postfetch, postfetch_lastrowid, render_literal_value(), render_table_with_column_in_update_from, returning, returning_precedes_values, sql_compiler, stack, translate_select_structure, update_from_clause(), update_limit_clause(), update_prefetch, update_tables_clause()
Классная подпись
класс
sqlalchemy.sql.compiler.SQLCompiler
(sqlalchemy.sql.compiler.Compiled
)-
method
sqlalchemy.sql.compiler.SQLCompiler.
__init__(dialect: Dialect, statement: Optional[ClauseElement], cache_key: Optional[CacheKey] = None, column_keys: Optional[Sequence[str]] = None, for_executemany: bool = False, linting: Linting = Linting.NO_LINTING, **kwargs: Any)¶ Создайте новый объект
SQLCompiler
.- Параметры:
dialect –
Dialect
будет использоватьсяstatement –
ClauseElement
должен быть скомпилированcolumn_keys – список имен столбцов для составления оператора INSERT или UPDATE.
for_executemany – должны ли операторы INSERT / UPDATE ожидать, что они будут вызваны в стиле «executemany», что может повлиять на то, как оператор будет возвращать значения по умолчанию, автоинкремента / последовательности и т.д. В зависимости от используемого бэкенда и драйвера, поддержка получения этих значений может быть отключена, что означает, что SQL выражения могут быть отображены в строке, RETURNING может быть не отображен и т.д.
kwargs – дополнительные аргументы ключевых слов, которые будут потребляться суперклассом.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
ansi_bind_rules: bool = False¶ SQL 92 не позволяет использовать параметры связывания в предложении columns в SELECT, а также не допускает двусмысленных выражений типа «? = ?». Подкласс компилятора может установить этот флаг в False, если целевой драйвер/БД обеспечивает соблюдение этого требования.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
bind_names: Dict[BindParameter[Any], str]¶ словарь экземпляров BindParameter для «скомпилированных» имен, которые действительно присутствуют в сгенерированном SQL
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
bindname_escape_characters: ClassVar[Mapping[str, str]] = {' ': '_', '%': 'P', '(': 'A', ')': 'Z', '.': '_', ':': 'C', '[': '_', ']': '_'}¶ Отображение (например, dict или аналогичное), содержащее поиск символов, ключевых для символов замены, которые будут применяться ко всем «связывающим именам», используемым в SQL-запросах в качестве формы «экранирования»; заданные символы полностью заменяются символом «замены» при отображении в SQL-запросе, и аналогичный перевод выполняется для входящих имен, используемых в словарях параметров, передаваемых методам типа
Connection.execute()
.Это позволяет связанным именам параметров, используемым в
bindparam()
и других конструкциях, содержать любые произвольные символы, не беспокоясь о символах, которые вообще не разрешены в целевой базе данных.Сторонние диалекты могут создать здесь свой собственный словарь для замены отображения по умолчанию, что гарантирует, что конкретные символы в отображении никогда не появятся в имени связанного параметра.
Словарь оценивается в время создания класса, поэтому не может быть изменен во время выполнения; он должен присутствовать в классе при первом объявлении класса.
Обратите внимание, что для диалектов, которые имеют дополнительные правила связанных параметров, например, дополнительные ограничения на ведущие символы, метод
SQLCompiler.bindparam_string()
может потребовать дополнения. Пример этого см. в компиляторе cx_Oracle.Добавлено в версии 2.0.0rc1.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
binds: Dict[str, BindParameter[Any]]¶ словарь ключей параметров привязки к экземплярам BindParameter.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
bindtemplate: str¶ шаблон для отображения связанных параметров на основе paramstyle.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
compilation_bindtemplate: str¶ шаблон, используемый компилятором для отображения параметров перед применением позиционного парамстиля
-
method
sqlalchemy.sql.compiler.SQLCompiler.
construct_expanded_state(params: Optional[_CoreSingleExecuteParams] = None, escape_names: bool = True) ExpandedState ¶ Возвращает новый
ExpandedState
для заданного набора параметров.Для запросов, использующих «расширяющие» или другие поздние параметры, этот метод предоставляет как окончательно сформированную строку SQL, так и параметры, которые будут использоваться для определенного набора параметров.
Добавлено в версии 2.0.0rc1.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
construct_params(params: Optional[_CoreSingleExecuteParams] = None, extracted_parameters: Optional[Sequence[BindParameter[Any]]] = None, escape_names: bool = True, _group_number: Optional[int] = None, _check: bool = True, _no_postcompile: bool = False) _MutableCoreSingleExecuteParams ¶ возвращает словарь ключей и значений параметров привязки
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
current_executable¶ Возвращает текущий «исполняемый файл», который компилируется.
В настоящее время это объект
Select
,Insert
,Update
,Delete
,CompoundSelect
, который компилируется. Конкретно он назначен списку элементовself.stack
.Когда компилируется утверждение, подобное приведенному выше, оно обычно также присваивается атрибуту
.statement
объектаCompiler
. Однако все конструкции SQL в конечном счете являются вложенными, и этот атрибут никогда не должен использоваться методомvisit_
, поскольку не гарантируется, что он присвоен и не гарантируется, что он соответствует текущему компилируемому утверждению.Добавлено в версии 1.3.21: Для совместимости с предыдущими версиями используйте следующий рецепт:
statement = getattr(self, "current_executable", False) if statement is False: statement = self.stack[-1]["selectable"]
Для версий 1.4 и выше убедитесь, что используется только .current_executable; формат «self.stack» может измениться.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
default_from()¶ Вызывается, когда оператор SELECT не содержит от и не нужно добавлять предложение FROM.
Дает Oracle возможность добавить
FROM DUAL
к выводу строки.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
delete_extra_from_clause(update_stmt, from_table, extra_froms, from_hints, **kw)¶ Предоставьте хук для переопределения генерации предложения DELETE..FROM.
Это может быть использовано, например, для реализации DELETE..USING.
MySQL и MSSQL переопределяют это.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
effective_returning¶ Эффективные «возвращаемые» столбцы для INSERT, UPDATE или DELETE.
Это либо так называемые «неявные возвращающиеся» колонки, которые вычисляются компилятором на лету, либо те, которые присутствуют на основе того, что присутствует в
self.statement._returning
(расширенные на отдельные колонки с помощью атрибута._all_selected_columns
), т.е. те, которые заданы явно с помощью методаUpdateBase.returning()
.Добавлено в версии 2.0.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
escaped_bind_names: util.immutabledict[str, str] = {}¶ Позднее экранирование имен связанных параметров, которые должны быть преобразованы к оригинальному имени при поиске в словаре параметров.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
get_select_precolumns(select, **kw)¶ Вызывается при построении оператора
SELECT
, позиция находится непосредственно перед списком столбцов.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
group_by_clause(select, **kw)¶ позволяют диалектам настраивать способ отображения GROUP BY.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
has_out_parameters = False¶ если True, то существуют объекты bindparam(), у которых установлен флаг isoutparam.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
implicit_returning: Optional[Sequence[ColumnElement[Any]]] = None¶ список «неявных» возвращаемых столбцов для оператора INSERT или UPDATE верхнего уровня, используемый для получения новых значений столбцов.
Добавлено в версии 2.0:
implicit_returning
заменяет предыдущую коллекциюreturning
, которая не была обобщенной коллекцией RETURNING и вместо этого была специфична для функции «неявного возврата».
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
insert_prefetch: Sequence[Column[Any]] = ()¶ список столбцов, для которых значения по умолчанию должны быть оценены до того, как произойдет INSERT
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
insert_single_values_expr¶ Когда INSERT составляется с одним набором параметров внутри выражения VALUES, строка присваивается здесь, где она может быть использована для схем пакетной вставки, чтобы переписать выражение VALUES.
Добавлено в версии 1.3.8.
Изменено в версии 2.0: Эта коллекция больше не используется встроенными диалектами SQLAlchemy, в пользу внутренней коллекции
_insertmanyvalues
, которая используется толькоSQLCompiler
.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
isupdate: bool = False¶ параметры по умолчанию на уровне класса, которые могут быть установлены на уровне экземпляра, чтобы определить, представляет ли данный компилированный экземпляр INSERT/UPDATE/DELETE
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
literal_execute_params: FrozenSet[BindParameter[Any]] = frozenset({})¶ объекты bindparameter, которые отображаются как буквальные значения во время выполнения оператора.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
order_by_clause(select, **kw)¶ позволяют диалектам настраивать способ отображения ORDER BY.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
params¶ Возвращает словарь bind param, встроенный в этот скомпилированный объект, для тех значений, которые присутствуют.
См.также
Как отобразить SQL-выражения в виде строк, возможно, с вставкой связанных параметров? - включает пример использования для отладки примеров использования.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
positiontup: Optional[List[str]] = None¶ для скомпилированной конструкции, использующей позиционный paramstyle, будет последовательность строк, указывающих имена связанных параметров по порядку.
Он используется для отображения связанных параметров в правильном порядке и используется вместе со словарем
Compiled.params
для отображения параметров.Эта последовательность всегда содержит имя параметров без расшифровки.
См.также
Как отобразить SQL-выражения в виде строк, возможно, с вставкой связанных параметров? - включает пример использования для отладки примеров использования.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
post_compile_params: FrozenSet[BindParameter[Any]] = frozenset({})¶ объекты bindparameter, которые отображаются в качестве держателей связанных параметров во время выполнения оператора.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
postfetch: Optional[List[Column[Any]]]¶ список столбцов, которые можно пост-фетчить после INSERT или UPDATE для получения обновленных сервером значений
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
postfetch_lastrowid = False¶ если True, и это вставка, используйте cursor.lastrowid для заполнения result.inserted_primary_key.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
render_literal_value(value, type_)¶ Вернуть значение параметра связывания в виде литерала в кавычках.
Используется для секций оператора, которые не принимают параметры привязки на целевом драйвере/базе данных.
Это должно быть реализовано подклассами, использующими сервисы цитирования DBAPI.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
render_table_with_column_in_update_from: bool = False¶ имеет значение True для всего класса, чтобы указать, что предложение SET в операторе UPDATE для нескольких таблиц должно определять столбцы с именем таблицы (т.е. только для MySQL).
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
returning¶ обратная совместимость; возвращает коллекцию effective_returning.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
returning_precedes_values: bool = False¶ имеет значение True для всего класса, чтобы генерировать предложения RETURNING перед предложениями VALUES или WHERE (т.е. MSSQL).
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
sql_compiler¶
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
stack: List[_CompilerStackEntry]¶ Основные операторы, такие как SELECT, INSERT, UPDATE, DELETE, отслеживаются в этом стеке с помощью формата записи.
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
translate_select_structure: Any = None¶ если не
None
, должен быть вызываемый объект, который принимает(select_stmt, **kw)
и возвращает объект select. это используется для структурных изменений, в основном для приспособления к схемам LIMIT/OFFSET.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
update_from_clause(update_stmt, from_table, extra_froms, from_hints, **kw)¶ Предоставьте хук для переопределения генерации предложения UPDATE..FROM.
MySQL и MSSQL переопределяют это.
-
method
sqlalchemy.sql.compiler.SQLCompiler.
update_limit_clause(update_stmt)¶ Предоставьте крючок для MySQL, чтобы добавить LIMIT к UPDATE
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
update_prefetch: Sequence[Column[Any]] = ()¶ список столбцов, для которых значения по умолчанию onupdate должны быть оценены перед выполнением UPDATE
-
method
sqlalchemy.sql.compiler.SQLCompiler.
update_tables_clause(update_stmt, from_table, extra_froms, **kw)¶ Предоставьте крючок для переопределения пункта initial table в операторе UPDATE.
MySQL переопределяет это.
-
method
- class sqlalchemy.sql.compiler.StrSQLCompiler¶
Подкласс
SQLCompiler
, позволяющий преобразовать в строковое значение небольшой набор нестандартных функций SQL.StrSQLCompiler
вызывается всякий раз, когда элемент выражения Core строится напрямую, без обращения к методуClauseElement.compile()
. Он может отображать ограниченный набор нестандартных конструкций SQL для помощи в базовой структуризации, однако для более существенных пользовательских или специфических для диалекта конструкций SQL необходимо использовать непосредственноClauseElement.compile()
.Классная подпись
класс
sqlalchemy.sql.compiler.StrSQLCompiler
(sqlalchemy.sql.compiler.SQLCompiler
)-
method
sqlalchemy.sql.compiler.StrSQLCompiler.
delete_extra_from_clause(update_stmt, from_table, extra_froms, from_hints, **kw)¶ Предоставьте хук для переопределения генерации предложения DELETE..FROM.
Это может быть использовано, например, для реализации DELETE..USING.
MySQL и MSSQL переопределяют это.
-
method
sqlalchemy.sql.compiler.StrSQLCompiler.
update_from_clause(update_stmt, from_table, extra_froms, from_hints, **kw)¶ Предоставьте хук для переопределения генерации предложения UPDATE..FROM.
MySQL и MSSQL переопределяют это.
-
method
- class sqlalchemy.engine.AdaptedConnection¶
Интерфейс адаптированного объекта соединения для поддержки протокола DBAPI.
Используется диалектами asyncio для обеспечения фасада pep-249 в стиле sync поверх API соединения/курсора asyncio, предоставляемого драйвером.
Members
Добавлено в версии 1.4.24.
-
attribute
sqlalchemy.engine.AdaptedConnection.
driver_connection¶ Объект соединения, возвращаемый драйвером после подключения.
-
method
sqlalchemy.engine.AdaptedConnection.
run_async(fn: Callable[[Any], Awaitable[_T]]) _T ¶ Запуск awaitable, возвращаемого заданной функцией, которой передается необработанное соединение драйвера asyncio.
Используется для вызова только ожидающих методов на соединении драйвера в контексте «синхронного» метода, например, обработчика событий пула соединений.
Например:
engine = create_async_engine(...) @event.listens_for(engine.sync_engine, "connect") def register_custom_types(dbapi_connection, ...): dbapi_connection.run_async( lambda connection: connection.set_type_codec( 'MyCustomType', encoder, decoder, ... ) )
Добавлено в версии 1.4.30.
-
attribute