SQLAlchemy 2.0 文档
SQLAlchemy 核心
- SQL 语句和表达式 API
- 模式定义语言
- SQL 数据类型对象
- 引擎和连接使用
- 核心 API 基础
- 事件
- 运行时检查 API
- 核心异常
- 核心内部机制¶
BindTyping
Compiled
DBAPIConnection
DBAPICursor
DBAPICursor.arraysize
DBAPICursor.callproc()
DBAPICursor.close()
DBAPICursor.description
DBAPICursor.execute()
DBAPICursor.executemany()
DBAPICursor.fetchall()
DBAPICursor.fetchmany()
DBAPICursor.fetchone()
DBAPICursor.lastrowid
DBAPICursor.nextset()
DBAPICursor.rowcount
DBAPICursor.setinputsizes()
DBAPICursor.setoutputsize()
DBAPIType
DDLCompiler
DDLCompiler.__init__()
DDLCompiler.cache_key
DDLCompiler.compile_state
DDLCompiler.construct_params()
DDLCompiler.define_constraint_remote_table()
DDLCompiler.dml_compile_state
DDLCompiler.execution_options
DDLCompiler.params
DDLCompiler.sql_compiler
DDLCompiler.state
DDLCompiler.statement
DDLCompiler.string
DefaultDialect
DefaultDialect.bind_typing
DefaultDialect.colspecs
DefaultDialect.connect()
DefaultDialect.construct_arguments
DefaultDialect.create_connect_args()
DefaultDialect.create_xid()
DefaultDialect.cte_follows_insert
DefaultDialect.dbapi
DefaultDialect.dbapi_exception_translation_map
DefaultDialect.ddl_compiler
DefaultDialect.default_isolation_level
DefaultDialect.default_metavalue_token
DefaultDialect.default_schema_name
DefaultDialect.default_sequence_base
DefaultDialect.delete_executemany_returning
DefaultDialect.delete_returning
DefaultDialect.delete_returning_multifrom
DefaultDialect.denormalize_name()
DefaultDialect.div_is_floordiv
DefaultDialect.do_begin()
DefaultDialect.do_begin_twophase()
DefaultDialect.do_close()
DefaultDialect.do_commit()
DefaultDialect.do_commit_twophase()
DefaultDialect.do_execute()
DefaultDialect.do_execute_no_params()
DefaultDialect.do_executemany()
DefaultDialect.do_ping()
DefaultDialect.do_prepare_twophase()
DefaultDialect.do_recover_twophase()
DefaultDialect.do_release_savepoint()
DefaultDialect.do_rollback()
DefaultDialect.do_rollback_to_savepoint()
DefaultDialect.do_rollback_twophase()
DefaultDialect.do_savepoint()
DefaultDialect.do_set_input_sizes()
DefaultDialect.do_terminate()
DefaultDialect.driver
DefaultDialect.engine_config_types
DefaultDialect.engine_created()
DefaultDialect.exclude_set_input_sizes
DefaultDialect.execute_sequence_format
DefaultDialect.execution_ctx_cls
DefaultDialect.favor_returning_over_lastrowid
DefaultDialect.full_returning
DefaultDialect.get_async_dialect_cls()
DefaultDialect.get_check_constraints()
DefaultDialect.get_columns()
DefaultDialect.get_default_isolation_level()
DefaultDialect.get_dialect_cls()
DefaultDialect.get_dialect_pool_class()
DefaultDialect.get_driver_connection()
DefaultDialect.get_foreign_keys()
DefaultDialect.get_indexes()
DefaultDialect.get_isolation_level()
DefaultDialect.get_isolation_level_values()
DefaultDialect.get_materialized_view_names()
DefaultDialect.get_multi_check_constraints()
DefaultDialect.get_multi_columns()
DefaultDialect.get_multi_foreign_keys()
DefaultDialect.get_multi_indexes()
DefaultDialect.get_multi_pk_constraint()
DefaultDialect.get_multi_table_comment()
DefaultDialect.get_multi_table_options()
DefaultDialect.get_multi_unique_constraints()
DefaultDialect.get_pk_constraint()
DefaultDialect.get_schema_names()
DefaultDialect.get_sequence_names()
DefaultDialect.get_table_comment()
DefaultDialect.get_table_names()
DefaultDialect.get_table_options()
DefaultDialect.get_temp_table_names()
DefaultDialect.get_temp_view_names()
DefaultDialect.get_unique_constraints()
DefaultDialect.get_view_definition()
DefaultDialect.get_view_names()
DefaultDialect.has_index()
DefaultDialect.has_schema()
DefaultDialect.has_sequence()
DefaultDialect.has_table()
DefaultDialect.has_terminate
DefaultDialect.identifier_preparer
DefaultDialect.import_dbapi()
DefaultDialect.include_set_input_sizes
DefaultDialect.initialize()
DefaultDialect.inline_comments
DefaultDialect.insert_executemany_returning
DefaultDialect.insert_executemany_returning_sort_by_parameter_order
DefaultDialect.insert_returning
DefaultDialect.insertmanyvalues_implicit_sentinel
DefaultDialect.insertmanyvalues_max_parameters
DefaultDialect.insertmanyvalues_page_size
DefaultDialect.is_async
DefaultDialect.is_disconnect()
DefaultDialect.label_length
DefaultDialect.load_provisioning()
DefaultDialect.loaded_dbapi
DefaultDialect.max_identifier_length
DefaultDialect.name
DefaultDialect.normalize_name()
DefaultDialect.on_connect()
DefaultDialect.on_connect_url()
DefaultDialect.paramstyle
DefaultDialect.positional
DefaultDialect.preexecute_autoincrement_sequences
DefaultDialect.preparer
DefaultDialect.reflection_options
DefaultDialect.reset_isolation_level()
DefaultDialect.returns_native_bytes
DefaultDialect.sequences_optional
DefaultDialect.server_side_cursors
DefaultDialect.server_version_info
DefaultDialect.set_connection_execution_options()
DefaultDialect.set_engine_execution_options()
DefaultDialect.set_isolation_level()
DefaultDialect.statement_compiler
DefaultDialect.supports_alter
DefaultDialect.supports_comments
DefaultDialect.supports_constraint_comments
DefaultDialect.supports_default_metavalue
DefaultDialect.supports_default_values
DefaultDialect.supports_empty_insert
DefaultDialect.supports_identity_columns
DefaultDialect.supports_multivalues_insert
DefaultDialect.supports_native_boolean
DefaultDialect.supports_native_decimal
DefaultDialect.supports_native_enum
DefaultDialect.supports_native_uuid
DefaultDialect.supports_sane_multi_rowcount
DefaultDialect.supports_sane_rowcount
DefaultDialect.supports_sane_rowcount_returning
DefaultDialect.supports_sequences
DefaultDialect.supports_server_side_cursors
DefaultDialect.supports_simple_order_by_label
DefaultDialect.supports_statement_cache
DefaultDialect.tuple_in_values
DefaultDialect.type_compiler
DefaultDialect.type_compiler_cls
DefaultDialect.type_compiler_instance
DefaultDialect.type_descriptor()
DefaultDialect.update_executemany_returning
DefaultDialect.update_returning
DefaultDialect.update_returning_multifrom
DefaultDialect.use_insertmanyvalues
DefaultDialect.use_insertmanyvalues_wo_returning
Dialect
Dialect.bind_typing
Dialect.colspecs
Dialect.connect()
Dialect.construct_arguments
Dialect.create_connect_args()
Dialect.create_xid()
Dialect.cte_follows_insert
Dialect.dbapi
Dialect.dbapi_exception_translation_map
Dialect.ddl_compiler
Dialect.default_isolation_level
Dialect.default_metavalue_token
Dialect.default_schema_name
Dialect.default_sequence_base
Dialect.delete_executemany_returning
Dialect.delete_returning
Dialect.delete_returning_multifrom
Dialect.denormalize_name()
Dialect.div_is_floordiv
Dialect.do_begin()
Dialect.do_begin_twophase()
Dialect.do_close()
Dialect.do_commit()
Dialect.do_commit_twophase()
Dialect.do_execute()
Dialect.do_execute_no_params()
Dialect.do_executemany()
Dialect.do_ping()
Dialect.do_prepare_twophase()
Dialect.do_recover_twophase()
Dialect.do_release_savepoint()
Dialect.do_rollback()
Dialect.do_rollback_to_savepoint()
Dialect.do_rollback_twophase()
Dialect.do_savepoint()
Dialect.do_set_input_sizes()
Dialect.do_terminate()
Dialect.driver
Dialect.engine_config_types
Dialect.engine_created()
Dialect.exclude_set_input_sizes
Dialect.execute_sequence_format
Dialect.execution_ctx_cls
Dialect.favor_returning_over_lastrowid
Dialect.get_async_dialect_cls()
Dialect.get_check_constraints()
Dialect.get_columns()
Dialect.get_default_isolation_level()
Dialect.get_dialect_cls()
Dialect.get_dialect_pool_class()
Dialect.get_driver_connection()
Dialect.get_foreign_keys()
Dialect.get_indexes()
Dialect.get_isolation_level()
Dialect.get_isolation_level_values()
Dialect.get_materialized_view_names()
Dialect.get_multi_check_constraints()
Dialect.get_multi_columns()
Dialect.get_multi_foreign_keys()
Dialect.get_multi_indexes()
Dialect.get_multi_pk_constraint()
Dialect.get_multi_table_comment()
Dialect.get_multi_table_options()
Dialect.get_multi_unique_constraints()
Dialect.get_pk_constraint()
Dialect.get_schema_names()
Dialect.get_sequence_names()
Dialect.get_table_comment()
Dialect.get_table_names()
Dialect.get_table_options()
Dialect.get_temp_table_names()
Dialect.get_temp_view_names()
Dialect.get_unique_constraints()
Dialect.get_view_definition()
Dialect.get_view_names()
Dialect.has_index()
Dialect.has_schema()
Dialect.has_sequence()
Dialect.has_table()
Dialect.has_terminate
Dialect.identifier_preparer
Dialect.import_dbapi()
Dialect.include_set_input_sizes
Dialect.initialize()
Dialect.inline_comments
Dialect.insert_executemany_returning
Dialect.insert_executemany_returning_sort_by_parameter_order
Dialect.insert_returning
Dialect.insertmanyvalues_implicit_sentinel
Dialect.insertmanyvalues_max_parameters
Dialect.insertmanyvalues_page_size
Dialect.is_async
Dialect.is_disconnect()
Dialect.label_length
Dialect.load_provisioning()
Dialect.loaded_dbapi
Dialect.max_identifier_length
Dialect.name
Dialect.normalize_name()
Dialect.on_connect()
Dialect.on_connect_url()
Dialect.paramstyle
Dialect.positional
Dialect.preexecute_autoincrement_sequences
Dialect.preparer
Dialect.reflection_options
Dialect.reset_isolation_level()
Dialect.returns_native_bytes
Dialect.sequences_optional
Dialect.server_side_cursors
Dialect.server_version_info
Dialect.set_connection_execution_options()
Dialect.set_engine_execution_options()
Dialect.set_isolation_level()
Dialect.statement_compiler
Dialect.supports_alter
Dialect.supports_comments
Dialect.supports_constraint_comments
Dialect.supports_default_metavalue
Dialect.supports_default_values
Dialect.supports_empty_insert
Dialect.supports_identity_columns
Dialect.supports_multivalues_insert
Dialect.supports_native_boolean
Dialect.supports_native_decimal
Dialect.supports_native_enum
Dialect.supports_native_uuid
Dialect.supports_sane_multi_rowcount
Dialect.supports_sane_rowcount
Dialect.supports_sequences
Dialect.supports_server_side_cursors
Dialect.supports_simple_order_by_label
Dialect.supports_statement_cache
Dialect.tuple_in_values
Dialect.type_compiler
Dialect.type_compiler_cls
Dialect.type_compiler_instance
Dialect.type_descriptor()
Dialect.update_executemany_returning
Dialect.update_returning
Dialect.update_returning_multifrom
Dialect.use_insertmanyvalues
Dialect.use_insertmanyvalues_wo_returning
DefaultExecutionContext
DefaultExecutionContext.compiled
DefaultExecutionContext.connection
DefaultExecutionContext.create_cursor()
DefaultExecutionContext.current_parameters
DefaultExecutionContext.cursor
DefaultExecutionContext.dialect
DefaultExecutionContext.engine
DefaultExecutionContext.execute_style
DefaultExecutionContext.executemany
DefaultExecutionContext.execution_options
DefaultExecutionContext.fetchall_for_returning()
DefaultExecutionContext.get_current_parameters()
DefaultExecutionContext.get_lastrowid()
DefaultExecutionContext.get_out_parameter_values()
DefaultExecutionContext.get_result_processor()
DefaultExecutionContext.handle_dbapi_exception()
DefaultExecutionContext.invoked_statement
DefaultExecutionContext.isinsert
DefaultExecutionContext.isupdate
DefaultExecutionContext.lastrow_has_defaults()
DefaultExecutionContext.no_parameters
DefaultExecutionContext.parameters
DefaultExecutionContext.post_exec()
DefaultExecutionContext.postfetch_cols
DefaultExecutionContext.pre_exec()
DefaultExecutionContext.prefetch_cols
DefaultExecutionContext.root_connection
ExecutionContext
ExecutionContext.compiled
ExecutionContext.connection
ExecutionContext.create_cursor()
ExecutionContext.cursor
ExecutionContext.dialect
ExecutionContext.engine
ExecutionContext.execute_style
ExecutionContext.executemany
ExecutionContext.execution_options
ExecutionContext.fetchall_for_returning()
ExecutionContext.fire_sequence()
ExecutionContext.get_out_parameter_values()
ExecutionContext.get_rowcount()
ExecutionContext.handle_dbapi_exception()
ExecutionContext.invoked_statement
ExecutionContext.isinsert
ExecutionContext.isupdate
ExecutionContext.lastrow_has_defaults()
ExecutionContext.no_parameters
ExecutionContext.parameters
ExecutionContext.post_exec()
ExecutionContext.postfetch_cols
ExecutionContext.pre_exec()
ExecutionContext.prefetch_cols
ExecutionContext.root_connection
ExecutionContext.statement
ExpandedState
GenericTypeCompiler
Identified
IdentifierPreparer
IdentifierPreparer.__init__()
IdentifierPreparer.format_column()
IdentifierPreparer.format_label_name()
IdentifierPreparer.format_schema()
IdentifierPreparer.format_table()
IdentifierPreparer.format_table_seq()
IdentifierPreparer.quote()
IdentifierPreparer.quote_identifier()
IdentifierPreparer.quote_schema()
IdentifierPreparer.schema_for_object
IdentifierPreparer.unformat_identifiers()
IdentifierPreparer.validate_sql_phrase()
SQLCompiler
SQLCompiler.__init__()
SQLCompiler.ansi_bind_rules
SQLCompiler.bind_names
SQLCompiler.bindname_escape_characters
SQLCompiler.binds
SQLCompiler.bindtemplate
SQLCompiler.compilation_bindtemplate
SQLCompiler.construct_expanded_state()
SQLCompiler.construct_params()
SQLCompiler.current_executable
SQLCompiler.default_from()
SQLCompiler.delete_extra_from_clause()
SQLCompiler.effective_returning
SQLCompiler.escaped_bind_names
SQLCompiler.get_select_precolumns()
SQLCompiler.group_by_clause()
SQLCompiler.has_out_parameters
SQLCompiler.implicit_returning
SQLCompiler.insert_prefetch
SQLCompiler.insert_single_values_expr
SQLCompiler.isupdate
SQLCompiler.literal_execute_params
SQLCompiler.order_by_clause()
SQLCompiler.params
SQLCompiler.positiontup
SQLCompiler.post_compile_params
SQLCompiler.postfetch
SQLCompiler.postfetch_lastrowid
SQLCompiler.render_literal_value()
SQLCompiler.render_table_with_column_in_update_from
SQLCompiler.returning
SQLCompiler.returning_precedes_values
SQLCompiler.sql_compiler
SQLCompiler.stack
SQLCompiler.translate_select_structure
SQLCompiler.update_from_clause()
SQLCompiler.update_limit_clause()
SQLCompiler.update_prefetch
SQLCompiler.update_tables_clause()
SQLCompiler.visit_override_binds()
StrSQLCompiler
AdaptedConnection
项目版本
- 上一页: 核心异常
- 下一页: 方言
- 上级: 首页
- 本页内容
- 核心内部结构
BindTyping
Compiled
DBAPIConnection
DBAPICursor
DBAPICursor.arraysize
DBAPICursor.callproc()
DBAPICursor.close()
DBAPICursor.description
DBAPICursor.execute()
DBAPICursor.executemany()
DBAPICursor.fetchall()
DBAPICursor.fetchmany()
DBAPICursor.fetchone()
DBAPICursor.lastrowid
DBAPICursor.nextset()
DBAPICursor.rowcount
DBAPICursor.setinputsizes()
DBAPICursor.setoutputsize()
DBAPIType
DDLCompiler
DDLCompiler.__init__()
DDLCompiler.cache_key
DDLCompiler.compile_state
DDLCompiler.construct_params()
DDLCompiler.define_constraint_remote_table()
DDLCompiler.dml_compile_state
DDLCompiler.execution_options
DDLCompiler.params
DDLCompiler.sql_compiler
DDLCompiler.state
DDLCompiler.statement
DDLCompiler.string
DefaultDialect
DefaultDialect.bind_typing
DefaultDialect.colspecs
DefaultDialect.connect()
DefaultDialect.construct_arguments
DefaultDialect.create_connect_args()
DefaultDialect.create_xid()
DefaultDialect.cte_follows_insert
DefaultDialect.dbapi
DefaultDialect.dbapi_exception_translation_map
DefaultDialect.ddl_compiler
DefaultDialect.default_isolation_level
DefaultDialect.default_metavalue_token
DefaultDialect.default_schema_name
DefaultDialect.default_sequence_base
DefaultDialect.delete_executemany_returning
DefaultDialect.delete_returning
DefaultDialect.delete_returning_multifrom
DefaultDialect.denormalize_name()
DefaultDialect.div_is_floordiv
DefaultDialect.do_begin()
DefaultDialect.do_begin_twophase()
DefaultDialect.do_close()
DefaultDialect.do_commit()
DefaultDialect.do_commit_twophase()
DefaultDialect.do_execute()
DefaultDialect.do_execute_no_params()
DefaultDialect.do_executemany()
DefaultDialect.do_ping()
DefaultDialect.do_prepare_twophase()
DefaultDialect.do_recover_twophase()
DefaultDialect.do_release_savepoint()
DefaultDialect.do_rollback()
DefaultDialect.do_rollback_to_savepoint()
DefaultDialect.do_rollback_twophase()
DefaultDialect.do_savepoint()
DefaultDialect.do_set_input_sizes()
DefaultDialect.do_terminate()
DefaultDialect.driver
DefaultDialect.engine_config_types
DefaultDialect.engine_created()
DefaultDialect.exclude_set_input_sizes
DefaultDialect.execute_sequence_format
DefaultDialect.execution_ctx_cls
DefaultDialect.favor_returning_over_lastrowid
DefaultDialect.full_returning
DefaultDialect.get_async_dialect_cls()
DefaultDialect.get_check_constraints()
DefaultDialect.get_columns()
DefaultDialect.get_default_isolation_level()
DefaultDialect.get_dialect_cls()
DefaultDialect.get_dialect_pool_class()
DefaultDialect.get_driver_connection()
DefaultDialect.get_foreign_keys()
DefaultDialect.get_indexes()
DefaultDialect.get_isolation_level()
DefaultDialect.get_isolation_level_values()
DefaultDialect.get_materialized_view_names()
DefaultDialect.get_multi_check_constraints()
DefaultDialect.get_multi_columns()
DefaultDialect.get_multi_foreign_keys()
DefaultDialect.get_multi_indexes()
DefaultDialect.get_multi_pk_constraint()
DefaultDialect.get_multi_table_comment()
DefaultDialect.get_multi_table_options()
DefaultDialect.get_multi_unique_constraints()
DefaultDialect.get_pk_constraint()
DefaultDialect.get_schema_names()
DefaultDialect.get_sequence_names()
DefaultDialect.get_table_comment()
DefaultDialect.get_table_names()
DefaultDialect.get_table_options()
DefaultDialect.get_temp_table_names()
DefaultDialect.get_temp_view_names()
DefaultDialect.get_unique_constraints()
DefaultDialect.get_view_definition()
DefaultDialect.get_view_names()
DefaultDialect.has_index()
DefaultDialect.has_schema()
DefaultDialect.has_sequence()
DefaultDialect.has_table()
DefaultDialect.has_terminate
DefaultDialect.identifier_preparer
DefaultDialect.import_dbapi()
DefaultDialect.include_set_input_sizes
DefaultDialect.initialize()
DefaultDialect.inline_comments
DefaultDialect.insert_executemany_returning
DefaultDialect.insert_executemany_returning_sort_by_parameter_order
DefaultDialect.insert_returning
DefaultDialect.insertmanyvalues_implicit_sentinel
DefaultDialect.insertmanyvalues_max_parameters
DefaultDialect.insertmanyvalues_page_size
DefaultDialect.is_async
DefaultDialect.is_disconnect()
DefaultDialect.label_length
DefaultDialect.load_provisioning()
DefaultDialect.loaded_dbapi
DefaultDialect.max_identifier_length
DefaultDialect.name
DefaultDialect.normalize_name()
DefaultDialect.on_connect()
DefaultDialect.on_connect_url()
DefaultDialect.paramstyle
DefaultDialect.positional
DefaultDialect.preexecute_autoincrement_sequences
DefaultDialect.preparer
DefaultDialect.reflection_options
DefaultDialect.reset_isolation_level()
DefaultDialect.returns_native_bytes
DefaultDialect.sequences_optional
DefaultDialect.server_side_cursors
DefaultDialect.server_version_info
DefaultDialect.set_connection_execution_options()
DefaultDialect.set_engine_execution_options()
DefaultDialect.set_isolation_level()
DefaultDialect.statement_compiler
DefaultDialect.supports_alter
DefaultDialect.supports_comments
DefaultDialect.supports_constraint_comments
DefaultDialect.supports_default_metavalue
DefaultDialect.supports_default_values
DefaultDialect.supports_empty_insert
DefaultDialect.supports_identity_columns
DefaultDialect.supports_multivalues_insert
DefaultDialect.supports_native_boolean
DefaultDialect.supports_native_decimal
DefaultDialect.supports_native_enum
DefaultDialect.supports_native_uuid
DefaultDialect.supports_sane_multi_rowcount
DefaultDialect.supports_sane_rowcount
DefaultDialect.supports_sane_rowcount_returning
DefaultDialect.supports_sequences
DefaultDialect.supports_server_side_cursors
DefaultDialect.supports_simple_order_by_label
DefaultDialect.supports_statement_cache
DefaultDialect.tuple_in_values
DefaultDialect.type_compiler
DefaultDialect.type_compiler_cls
DefaultDialect.type_compiler_instance
DefaultDialect.type_descriptor()
DefaultDialect.update_executemany_returning
DefaultDialect.update_returning
DefaultDialect.update_returning_multifrom
DefaultDialect.use_insertmanyvalues
DefaultDialect.use_insertmanyvalues_wo_returning
Dialect
Dialect.bind_typing
Dialect.colspecs
Dialect.connect()
Dialect.construct_arguments
Dialect.create_connect_args()
Dialect.create_xid()
Dialect.cte_follows_insert
Dialect.dbapi
Dialect.dbapi_exception_translation_map
Dialect.ddl_compiler
Dialect.default_isolation_level
Dialect.default_metavalue_token
Dialect.default_schema_name
Dialect.default_sequence_base
Dialect.delete_executemany_returning
Dialect.delete_returning
Dialect.delete_returning_multifrom
Dialect.denormalize_name()
Dialect.div_is_floordiv
Dialect.do_begin()
Dialect.do_begin_twophase()
Dialect.do_close()
Dialect.do_commit()
Dialect.do_commit_twophase()
Dialect.do_execute()
Dialect.do_execute_no_params()
Dialect.do_executemany()
Dialect.do_ping()
Dialect.do_prepare_twophase()
Dialect.do_recover_twophase()
Dialect.do_release_savepoint()
Dialect.do_rollback()
Dialect.do_rollback_to_savepoint()
Dialect.do_rollback_twophase()
Dialect.do_savepoint()
Dialect.do_set_input_sizes()
Dialect.do_terminate()
Dialect.driver
Dialect.engine_config_types
Dialect.engine_created()
Dialect.exclude_set_input_sizes
Dialect.execute_sequence_format
Dialect.execution_ctx_cls
Dialect.favor_returning_over_lastrowid
Dialect.get_async_dialect_cls()
Dialect.get_check_constraints()
Dialect.get_columns()
Dialect.get_default_isolation_level()
Dialect.get_dialect_cls()
Dialect.get_dialect_pool_class()
Dialect.get_driver_connection()
Dialect.get_foreign_keys()
Dialect.get_indexes()
Dialect.get_isolation_level()
Dialect.get_isolation_level_values()
Dialect.get_materialized_view_names()
Dialect.get_multi_check_constraints()
Dialect.get_multi_columns()
Dialect.get_multi_foreign_keys()
Dialect.get_multi_indexes()
Dialect.get_multi_pk_constraint()
Dialect.get_multi_table_comment()
Dialect.get_multi_table_options()
Dialect.get_multi_unique_constraints()
Dialect.get_pk_constraint()
Dialect.get_schema_names()
Dialect.get_sequence_names()
Dialect.get_table_comment()
Dialect.get_table_names()
Dialect.get_table_options()
Dialect.get_temp_table_names()
Dialect.get_temp_view_names()
Dialect.get_unique_constraints()
Dialect.get_view_definition()
Dialect.get_view_names()
Dialect.has_index()
Dialect.has_schema()
Dialect.has_sequence()
Dialect.has_table()
Dialect.has_terminate
Dialect.identifier_preparer
Dialect.import_dbapi()
Dialect.include_set_input_sizes
Dialect.initialize()
Dialect.inline_comments
Dialect.insert_executemany_returning
Dialect.insert_executemany_returning_sort_by_parameter_order
Dialect.insert_returning
Dialect.insertmanyvalues_implicit_sentinel
Dialect.insertmanyvalues_max_parameters
Dialect.insertmanyvalues_page_size
Dialect.is_async
Dialect.is_disconnect()
Dialect.label_length
Dialect.load_provisioning()
Dialect.loaded_dbapi
Dialect.max_identifier_length
Dialect.name
Dialect.normalize_name()
Dialect.on_connect()
Dialect.on_connect_url()
Dialect.paramstyle
Dialect.positional
Dialect.preexecute_autoincrement_sequences
Dialect.preparer
Dialect.reflection_options
Dialect.reset_isolation_level()
Dialect.returns_native_bytes
Dialect.sequences_optional
Dialect.server_side_cursors
Dialect.server_version_info
Dialect.set_connection_execution_options()
Dialect.set_engine_execution_options()
Dialect.set_isolation_level()
Dialect.statement_compiler
Dialect.supports_alter
Dialect.supports_comments
Dialect.supports_constraint_comments
Dialect.supports_default_metavalue
Dialect.supports_default_values
Dialect.supports_empty_insert
Dialect.supports_identity_columns
Dialect.supports_multivalues_insert
Dialect.supports_native_boolean
Dialect.supports_native_decimal
Dialect.supports_native_enum
Dialect.supports_native_uuid
Dialect.supports_sane_multi_rowcount
Dialect.supports_sane_rowcount
Dialect.supports_sequences
Dialect.supports_server_side_cursors
Dialect.supports_simple_order_by_label
Dialect.supports_statement_cache
Dialect.tuple_in_values
Dialect.type_compiler
Dialect.type_compiler_cls
Dialect.type_compiler_instance
Dialect.type_descriptor()
Dialect.update_executemany_returning
Dialect.update_returning
Dialect.update_returning_multifrom
Dialect.use_insertmanyvalues
Dialect.use_insertmanyvalues_wo_returning
DefaultExecutionContext
DefaultExecutionContext.compiled
DefaultExecutionContext.connection
DefaultExecutionContext.create_cursor()
DefaultExecutionContext.current_parameters
DefaultExecutionContext.cursor
DefaultExecutionContext.dialect
DefaultExecutionContext.engine
DefaultExecutionContext.execute_style
DefaultExecutionContext.executemany
DefaultExecutionContext.execution_options
DefaultExecutionContext.fetchall_for_returning()
DefaultExecutionContext.get_current_parameters()
DefaultExecutionContext.get_lastrowid()
DefaultExecutionContext.get_out_parameter_values()
DefaultExecutionContext.get_result_processor()
DefaultExecutionContext.handle_dbapi_exception()
DefaultExecutionContext.invoked_statement
DefaultExecutionContext.isinsert
DefaultExecutionContext.isupdate
DefaultExecutionContext.lastrow_has_defaults()
DefaultExecutionContext.no_parameters
DefaultExecutionContext.parameters
DefaultExecutionContext.post_exec()
DefaultExecutionContext.postfetch_cols
DefaultExecutionContext.pre_exec()
DefaultExecutionContext.prefetch_cols
DefaultExecutionContext.root_connection
ExecutionContext
ExecutionContext.compiled
ExecutionContext.connection
ExecutionContext.create_cursor()
ExecutionContext.cursor
ExecutionContext.dialect
ExecutionContext.engine
ExecutionContext.execute_style
ExecutionContext.executemany
ExecutionContext.execution_options
ExecutionContext.fetchall_for_returning()
ExecutionContext.fire_sequence()
ExecutionContext.get_out_parameter_values()
ExecutionContext.get_rowcount()
ExecutionContext.handle_dbapi_exception()
ExecutionContext.invoked_statement
ExecutionContext.isinsert
ExecutionContext.isupdate
ExecutionContext.lastrow_has_defaults()
ExecutionContext.no_parameters
ExecutionContext.parameters
ExecutionContext.post_exec()
ExecutionContext.postfetch_cols
ExecutionContext.pre_exec()
ExecutionContext.prefetch_cols
ExecutionContext.root_connection
ExecutionContext.statement
ExpandedState
GenericTypeCompiler
Identified
IdentifierPreparer
IdentifierPreparer.__init__()
IdentifierPreparer.format_column()
IdentifierPreparer.format_label_name()
IdentifierPreparer.format_schema()
IdentifierPreparer.format_table()
IdentifierPreparer.format_table_seq()
IdentifierPreparer.quote()
IdentifierPreparer.quote_identifier()
IdentifierPreparer.quote_schema()
IdentifierPreparer.schema_for_object
IdentifierPreparer.unformat_identifiers()
IdentifierPreparer.validate_sql_phrase()
SQLCompiler
SQLCompiler.__init__()
SQLCompiler.ansi_bind_rules
SQLCompiler.bind_names
SQLCompiler.bindname_escape_characters
SQLCompiler.binds
SQLCompiler.bindtemplate
SQLCompiler.compilation_bindtemplate
SQLCompiler.construct_expanded_state()
SQLCompiler.construct_params()
SQLCompiler.current_executable
SQLCompiler.default_from()
SQLCompiler.delete_extra_from_clause()
SQLCompiler.effective_returning
SQLCompiler.escaped_bind_names
SQLCompiler.get_select_precolumns()
SQLCompiler.group_by_clause()
SQLCompiler.has_out_parameters
SQLCompiler.implicit_returning
SQLCompiler.insert_prefetch
SQLCompiler.insert_single_values_expr
SQLCompiler.isupdate
SQLCompiler.literal_execute_params
SQLCompiler.order_by_clause()
SQLCompiler.params
SQLCompiler.positiontup
SQLCompiler.post_compile_params
SQLCompiler.postfetch
SQLCompiler.postfetch_lastrowid
SQLCompiler.render_literal_value()
SQLCompiler.render_table_with_column_in_update_from
SQLCompiler.returning
SQLCompiler.returning_precedes_values
SQLCompiler.sql_compiler
SQLCompiler.stack
SQLCompiler.translate_select_structure
SQLCompiler.update_from_clause()
SQLCompiler.update_limit_clause()
SQLCompiler.update_prefetch
SQLCompiler.update_tables_clause()
SQLCompiler.visit_override_binds()
StrSQLCompiler
AdaptedConnection
核心内部结构¶
这里列出了一些关键的内部结构。
对象名称 | 描述 |
---|---|
一个适配连接对象的接口,用于支持 DBAPI 协议。 |
|
定义在将语句中绑定参数的类型信息传递给数据库驱动程序时使用不同方法。 |
|
表示已编译的 SQL 或 DDL 表达式。 |
|
表示 PEP 249 数据库连接的协议。 |
|
表示 PEP 249 数据库游标的协议。 |
|
表示 PEP 249 数据库类型的协议。 |
|
Dialect 的默认实现。 |
|
定义特定数据库和 DB-API 组合的行为。 |
|
与单个执行相对应的 Dialect 的消息传递对象。 |
|
表示在生成语句的“扩展”和“编译后”绑定参数时使用的状态。 |
|
根据选项处理标识符的引用和大小写折叠。 |
|
|
|
一个 |
- class sqlalchemy.engine.BindTyping¶
定义在将语句中绑定参数的类型信息传递给数据库驱动程序时使用不同方法。
版本 2.0 中新增。
类签名
class
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 时,编译器将为每个
BindParameter
对象调用SQLCompiler.render_bind_cast()
方法,该对象的方言级类型设置了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()
现在在“insertmanyvalues”实现的某些元素中使用。
-
attribute
sqlalchemy.engine.BindTyping.
SETINPUTSIZES = 2¶ 使用 pep-249 setinputsizes 方法。
这仅针对支持此方法的 DBAPI 以及 SQLAlchemy 方言为此方言设置了适当的基础结构的 DBAPI 实现。当前方言包括 cx_Oracle 以及使用 pyodbc 对 SQL Server 的可选支持。
使用 setinputsizes 时,方言还有一种方法,可以只对某些数据类型使用该方法,使用 include/exclude 列表。
使用 SETINPUTSIZES 时,将为每个执行的语句调用
Dialect.do_set_input_sizes()
方法,该语句具有绑定参数。
-
attribute
- class sqlalchemy.engine.Compiled¶
表示已编译的 SQL 或 DDL 表达式。
成员
__init__(), cache_key, compile_state, construct_params(), dml_compile_state, execution_options, params, sql_compiler, state, statement, string
Compiled
对象的__str__
方法应该生成语句的实际文本。Compiled
对象特定于其底层数据库方言,并且可能也可能不特定于特定绑定参数集中引用的列。在任何情况下,Compiled
对象都不应该依赖于这些绑定参数的实际值,即使它可能将这些值作为默认值引用。-
method
sqlalchemy.engine.Compiled.
__init__(dialect: Dialect, statement: ClauseElement | None, schema_translate_map: SchemaTranslateMapType | None = None, render_schema_translate: bool = False, compile_kwargs: Mapping[str, Any] = {})¶ 构造一个新的
Compiled
对象。
-
attribute
sqlalchemy.engine.Compiled.
cache_key: CacheKey | None = None¶ 创建此
Compiled
对象之前生成的CacheKey
。这用于需要访问在最初缓存
Compiled
实例时生成的原始CacheKey
实例的例程,通常是为了将原始的BindParameter
对象列表与每次调用时生成的每个语句列表进行协调。
-
attribute
sqlalchemy.engine.Compiled.
compile_state: CompileState | None = None¶ 可选的
CompileState
对象,它维护编译器使用的额外状态。主要的执行对象,如
Insert
、Update
、Delete
、Select
将在编译时生成此状态,以便计算有关对象的其他信息。对于要执行的顶级对象,状态可以存储在此处,它也可以对结果集处理具有适用性。版本 1.4 中的新功能。
-
method
sqlalchemy.engine.Compiled.
construct_params(params: _CoreSingleExecuteParams | None = None, extracted_parameters: Sequence[BindParameter[Any]] | None = None, escape_names: bool = True) → _MutableCoreSingleExecuteParams | None¶ 返回此已编译对象的绑定参数。
- 参数:
params¶ – 字符串/对象对的字典,其值将覆盖编译到语句中的绑定值。
-
attribute
sqlalchemy.engine.Compiled.
dml_compile_state: CompileState | None = None¶ 在分配 .isinsert、.isupdate 或 .isdelete 的同时分配的可选
CompileState
。这通常与 .compile_state 相同,除了像
ORMFromStatementCompileState
对象这样的情况。版本 1.4.40 中的新功能。
-
attribute
sqlalchemy.engine.Compiled.
execution_options: _ExecuteOptions = {}¶ 从语句中传播的执行选项。在某些情况下,语句的子元素可以修改这些选项。
-
attribute
sqlalchemy.engine.Compiled.
params¶ 返回此已编译对象的绑定参数。
-
属性
sqlalchemy.engine.Compiled.
sql_compiler¶ 返回一个能够处理 SQL 表达式的 Compiled 对象。
如果此编译器本身就是一个,它很可能只是返回“self”。
-
属性
sqlalchemy.engine.Compiled.
state: CompilerState¶ 编译器状态的描述。
-
属性
sqlalchemy.engine.Compiled.
statement: ClauseElement | None = None¶ 要编译的语句。
-
属性
sqlalchemy.engine.Compiled.
string: str = ''¶ statement
的字符串表示形式。
-
method
- 类 sqlalchemy.engine.interfaces.DBAPIConnection¶
表示 PEP 249 数据库连接的协议。
版本 2.0 中新增。
成员
类签名
class
sqlalchemy.engine.interfaces.DBAPIConnection
(typing_extensions.Protocol
)-
属性
sqlalchemy.engine.interfaces.DBAPIConnection.
autocommit: bool¶
-
方法
sqlalchemy.engine.interfaces.DBAPIConnection.
close() → None¶
-
方法
sqlalchemy.engine.interfaces.DBAPIConnection.
commit() → None¶
-
方法
sqlalchemy.engine.interfaces.DBAPIConnection.
rollback() → None¶
-
属性
- 类 sqlalchemy.engine.interfaces.DBAPICursor¶
表示 PEP 249 数据库游标的协议。
版本 2.0 中新增。
成员
arraysize, callproc(), close(), description, execute(), executemany(), fetchall(), fetchmany(), fetchone(), lastrowid, nextset(), rowcount, setinputsizes(), setoutputsize()
类签名
class
sqlalchemy.engine.interfaces.DBAPICursor
(typing_extensions.Protocol
)-
属性
sqlalchemy.engine.interfaces.DBAPICursor.
arraysize: int¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
callproc(procname: str, parameters: Sequence[Any] = Ellipsis) → Any¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
close() → None¶
-
属性
sqlalchemy.engine.interfaces.DBAPICursor.
description¶ 游标的 description 属性。
另请参见
cursor.description - 在 PEP 249 中。
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
execute(operation: Any, parameters: Sequence[Any] | Mapping[str, Any] | None = None) → Any¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
executemany(operation: Any, parameters: Sequence[Sequence[Any]] | Sequence[Mapping[str, Any]]) → Any¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
fetchall() → Sequence[Any]¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
fetchmany(size: int = Ellipsis) → Sequence[Any]¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
fetchone() → Any | None¶
-
属性
sqlalchemy.engine.interfaces.DBAPICursor.
lastrowid: int¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
nextset() → bool | None¶
-
属性
sqlalchemy.engine.interfaces.DBAPICursor.
rowcount¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
setinputsizes(sizes: Sequence[Any]) → None¶
-
方法
sqlalchemy.engine.interfaces.DBAPICursor.
setoutputsize(size: Any, column: Any) → None¶
-
属性
- 类 sqlalchemy.engine.interfaces.DBAPIType¶
表示 PEP 249 数据库类型的协议。
版本 2.0 中新增。
类签名
类
sqlalchemy.engine.interfaces.DBAPIType
(typing_extensions.Protocol
)
- 类 sqlalchemy.sql.compiler.DDLCompiler¶
成员
__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.
__init__(dialect: Dialect, statement: ClauseElement | None, schema_translate_map: SchemaTranslateMapType | None = None, render_schema_translate: bool = False, compile_kwargs: Mapping[str, Any] = {})¶ 继承自
sqlalchemy.sql.compiler.Compiled.__init__
方法Compiled
构造一个新的
Compiled
对象。
-
属性
sqlalchemy.sql.compiler.DDLCompiler.
cache_key: CacheKey | None = None¶ 继承自
Compiled.cache_key
属性的Compiled
在创建此
Compiled
对象之前生成的CacheKey
。这用于需要访问原始
CacheKey
实例的例程,该实例是在Compiled
实例首次缓存时生成的,通常是为了协调原始的BindParameter
对象列表与每次调用时生成的每个语句列表。
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
compile_state: CompileState | None = None¶ 继承自
Compiled.compile_state
属性的Compiled
可选的
CompileState
对象,它维护编译器使用的额外状态。主要的执行对象,如
Insert
、Update
、Delete
、Select
将在编译时生成此状态,以便计算有关对象的其他信息。对于要执行的顶级对象,状态可以存储在此处,它也可以对结果集处理具有适用性。版本 1.4 中的新功能。
-
method
sqlalchemy.sql.compiler.DDLCompiler.
construct_params(params: _CoreSingleExecuteParams | None = None, extracted_parameters: Sequence[BindParameter[Any]] | None = None, escape_names: bool = True) → _MutableCoreSingleExecuteParams | None¶ 返回此已编译对象的绑定参数。
- 参数:
params¶ – 一个字符串/对象对的字典,其值将覆盖编译到语句中的绑定值。
-
method
sqlalchemy.sql.compiler.DDLCompiler.
define_constraint_remote_table(constraint, table, preparer)¶ 格式化 CREATE CONSTRAINT 子句的远程表子句。
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
dml_compile_state: CompileState | None = None¶ 继承自
Compiled.dml_compile_state
属性的Compiled
在分配 .isinsert、.isupdate 或 .isdelete 的同时分配的可选
CompileState
。这通常与 .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: ClauseElement | None = None¶ 继承自
Compiled.statement
属性的Compiled
要编译的语句。
-
attribute
sqlalchemy.sql.compiler.DDLCompiler.
string: str = ''¶ 继承自
Compiled.string
属性的Compiled
statement
的字符串表示形式。
-
方法
- class sqlalchemy.engine.default.DefaultDialect¶
Dialect 的默认实现。
成员
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
-
attribute
sqlalchemy.engine.default.DefaultDialect.
bind_typing = 1¶ 定义将类型信息传递给数据库和/或驱动程序以进行绑定参数的方法。
请参阅
BindTyping
以了解值。版本 2.0 中新增。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
colspecs: MutableMapping[Type[TypeEngine[Any]], Type[TypeEngine[Any]]] = {}¶ 来自 sqlalchemy.types 的 TypeEngine 类映射到特定于方言类的子类的字典。此字典仅在类级别,不会从方言实例本身访问。
-
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: List[Tuple[Type[SchemaItem | ClauseElement], Mapping[str, Any]]] | None = None¶ 从
Dialect.construct_arguments
属性继承Dialect
各种 SQLAlchemy 结构(通常是模式项)的可选参数规范集。
要实现,请建立一系列元组,如下所示
construct_arguments = [ (schema.Index, { "using": False, "where": None, "ops": None }) ]
如果上述结构在 PostgreSQL 方言上建立,则
Index
结构现在将接受关键字参数postgresql_using
、postgresql_where
和postgresql_ops
。任何其他指定给Index
构造函数的参数,如果以postgresql_
为前缀,则会引发ArgumentError
。没有包含
construct_arguments
成员的方言将不会参与参数验证系统。对于这样的方言,所有参与的结构都接受任何参数名称,在以该方言名称为前缀的参数命名空间内。这里的理由是,尚未实现此功能的第三方方言继续以旧的方式运行。另请参见
DialectKWArgs
- 实现消耗DefaultDialect.construct_arguments
的基类
-
method
sqlalchemy.engine.default.DefaultDialect.
create_connect_args(url)¶ 构建与 DBAPI 兼容的连接参数。
给定一个
URL
对象,返回一个包含(*args, **kwargs)
的元组,适合直接发送到 dbapi 的 connect 函数。这些参数被发送到Dialect.connect()
方法,该方法然后运行 DBAPI 级别的connect()
函数。该方法通常利用
URL.translate_connect_args()
方法来生成选项字典。默认实现为
def create_connect_args(self, url): opts = url.translate_connect_args() opts.update(url.query) return ([], opts)
- 参数:
- 返回值:
将传递给
Dialect.connect()
方法的(*args, **kwargs)
元组。
-
method
sqlalchemy.engine.default.DefaultDialect.
create_xid()¶ 创建随机的两阶段事务 ID。
此 ID 将传递给 do_begin_twophase()、do_rollback_twophase()、do_commit_twophase()。它的格式未指定。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
cte_follows_insert: bool = False¶ 目标数据库,当给定一个带有 INSERT 语句的 CTE 时,需要将 CTE 放在 INSERT 之后
-
attribute
sqlalchemy.engine.default.DefaultDialect.
dbapi: ModuleType | None¶ 对 DBAPI 模块对象本身的引用。
SQLAlchemy 方言使用类方法
Dialect.import_dbapi()
导入 DBAPI 模块。这样做的理由是,任何方言模块都可以导入并用于生成 SQL 语句,而无需实际安装 DBAPI 驱动程序。只有当使用Engine
构造create_engine()
时,才会导入 DBAPI;此时,创建过程将 DBAPI 模块分配给此属性。因此,方言应该实现
Dialect.import_dbapi()
,它将导入必要的模块并返回它,然后在方言代码中引用self.dbapi
来引用 DBAPI 模块的内容。在版本 The 中更改:
Dialect.dbapi
属性专门用作对 DBAPI 模块的每个Dialect
实例的引用。以前未完全记录的.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¶ 的别名
DDLCompiler
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_isolation_level: IsolationLevel | None¶ 新连接隐式存在的隔离级别。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_metavalue_token: str = 'DEFAULT'¶ 对于 INSERT… VALUES (DEFAULT) 语法,括号中要放置的标记。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_schema_name: str | None = None¶ 默认模式的名称。此值仅适用于支持的方言,通常在首次连接到数据库时填充。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
default_sequence_base: int = 1¶ 将作为 CREATE SEQUENCE DDL 语句的“START WITH”部分呈现的默认值。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
delete_executemany_returning: bool = False¶ 方言支持使用 executemany 的 DELETE..RETURNING。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
delete_returning: bool = False¶ 如果方言支持使用 DELETE 的 RETURNING。
版本 2.0 中新增。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
delete_returning_multifrom: bool = False¶ 如果方言支持使用 DELETE..FROM 的 RETURNING。
版本 2.0 中新增。
-
method
sqlalchemy.engine.default.DefaultDialect.
denormalize_name(name)¶ 如果给定的名称是全小写,则将其转换为后端的区分大小写标识符。
此方法仅在方言定义 requires_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
的Dialect.do_begin_twophase()
方法在给定的连接上开始两阶段事务。
- 参数:
connection¶ – 一个
Connection
。xid¶ – xid
-
method
sqlalchemy.engine.default.DefaultDialect.
do_close(dbapi_connection)¶ 提供
connection.close()
的实现,给定一个 DB-API 连接。此钩子由
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
的Dialect.do_commit_twophase()
方法在给定的连接上提交两阶段事务。
- 参数:
connection¶ – 一个
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¶ ping DBAPI 连接,如果连接可用则返回 True。
-
method
sqlalchemy.engine.default.DefaultDialect.
do_prepare_twophase(connection: Connection, xid: Any) → None¶ 继承自
Dialect
的Dialect.do_prepare_twophase()
方法在给定连接上准备一个两阶段事务。
- 参数:
connection¶ – 一个
Connection
。xid¶ – xid
-
method
sqlalchemy.engine.default.DefaultDialect.
do_recover_twophase(connection: Connection) → List[Any]¶ 继承自
Dialect
的Dialect.do_recover_twophase()
方法恢复给定连接上未提交的已准备好的两阶段事务标识符列表。
- 参数:
connection¶ – 一个
Connection
。
-
method
sqlalchemy.engine.default.DefaultDialect.
do_release_savepoint(connection, name)¶ 在连接上释放命名保存点。
- 参数:
connection¶ – 一个
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¶ – 一个
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¶ – 一个
Connection
.xid¶ – xid
is_prepared¶ – 是否调用了
TwoPhaseTransaction.prepare()
.recover¶ – 如果传递了 recover 标志。
-
方法
sqlalchemy.engine.default.DefaultDialect.
do_savepoint(connection, name)¶ 创建具有给定名称的保存点。
- 参数:
connection¶ – 一个
Connection
.name¶ – 保存点名称。
-
方法
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 中更改: - 通过将
Dialect.bind_typing
设置为BindTyping.SETINPUTSIZES
来启用 setinputsizes 模式。接受use_setinputsizes
参数的方言应该相应地设置此值。
-
方法
sqlalchemy.engine.default.DefaultDialect.
do_terminate(dbapi_connection)¶ 提供
connection.close()
的实现,该实现尽可能地尝试不阻塞,给定 DBAPI 连接。在绝大多数情况下,这只是调用 .close(),但是对于某些 asyncio 方言来说,可能会调用不同的 API 特性。
此钩子由
Pool
在回收连接或连接已失效时调用。在版本 1.4.41 中新添加。
-
属性
sqlalchemy.engine.default.DefaultDialect.
driver: str¶ 方言的 DBAPI 的标识名称
-
属性
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>}¶ 字符串键的映射,这些键可以链接到类型转换函数的引擎配置中。
-
类方法
sqlalchemy.engine.default.DefaultDialect.
engine_created(engine: Engine) → None¶ 继承自
Dialect.engine_created()
方法Dialect
在返回最终
Engine
之前调用的一个便利钩子。如果方言从
get_dialect_cls()
方法返回了不同的类,则钩子将在这两个类上调用,首先在get_dialect_cls()
方法返回的方言类上调用,然后在调用该方法的类上调用。钩子应该由方言和/或包装器用来对引擎或其组件应用特殊事件。特别是,它允许方言包装类应用方言级别的事件。
-
属性
sqlalchemy.engine.default.DefaultDialect.
exclude_set_input_sizes: Set[Any] | None = None¶ DBAPI 类型对象的集合,这些对象应该在自动 cursor.setinputsizes() 调用中排除。
这仅在 bind_typing 为 BindTyping.SET_INPUT_SIZES 时使用
-
属性
sqlalchemy.engine.default.DefaultDialect.
execute_sequence_format¶ 是
tuple
的别名
-
属性
sqlalchemy.engine.default.DefaultDialect.
execution_ctx_cls¶ 是
DefaultExecutionContext
的别名
-
属性
sqlalchemy.engine.default.DefaultDialect.
favor_returning_over_lastrowid: bool = False¶ 对于支持 lastrowid 和 RETURNING 插入策略的后端,对于简单的单整型主键插入,优先使用 RETURNING。
在大多数后端上,cursor.lastrowid 的性能往往更高。
-
属性
sqlalchemy.engine.default.DefaultDialect.
full_returning¶ 从版本 2.0 开始弃用: full_returning 已弃用,请使用 insert_returning、update_returning、delete_returning
-
类方法
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 中的新功能。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_check_constraints(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedCheckConstraint]¶ 继承自
Dialect.get_check_constraints()
方法Dialect
返回关于
table_name
中检查约束的信息。给定一个字符串
table_name
和一个可选的字符串schema
,以与ReflectedCheckConstraint
字典相对应的字典列表形式返回检查约束信息。这是一个内部方言方法。应用程序应使用
Inspector.get_check_constraints()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_columns(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedColumn]¶ 继承自
Dialect.get_columns()
方法Dialect
返回关于
table_name
中列的信息。给定一个
Connection
、一个字符串table_name
和一个可选的字符串schema
,以与ReflectedColumn
字典相对应的字典列表形式返回列信息。这是一个内部方言方法。应用程序应使用
Inspector.get_columns()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_default_isolation_level(dbapi_conn)¶ 给定一个 DBAPI 连接,返回其隔离级别,或者如果无法检索,则返回默认隔离级别。
可以通过子类覆盖,以便为无法可靠地检索实际隔离级别的数据库提供“回退”隔离级别。
默认情况下,调用
Interfaces.get_isolation_level()
方法,传播任何引发的异常。版本 1.3.22 中的新功能。
-
类方法
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]¶ 返回给定 URL 要使用的 Pool 类。
-
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: str | None = None, **kw: Any) → List[ReflectedForeignKeyConstraint]¶ 继承自
Dialect.get_foreign_keys()
方法 ofDialect
返回有关
table_name
中外键的信息。给定一个
Connection
、字符串table_name
以及可选的字符串schema
,返回外键信息,以与ReflectedForeignKeyConstraint
字典对应的字典列表形式。这是一个内部方言方法。应用程序应使用
Inspector.get_foreign_keys()
。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_indexes(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedIndex]¶ 继承自
Dialect.get_indexes()
方法 ofDialect
返回有关
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()
方法 ofDialect
给定一个 DBAPI 连接,返回其隔离级别。
在使用
Connection
对象时,可以使用Connection.connection
访问器获取相应的 DBAPI 连接。请注意,这是一个方言级别的方法,用作
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()
方法 ofDialect
返回此方言接受的字符串隔离级别名称序列。
可用名称应使用以下约定
使用大写名称。隔离级别方法将接受小写名称,但这些名称将在传递给方言之前被规范化为大写。
单独的词语应该用空格隔开,而不是下划线,例如
REPEATABLE READ
。隔离级别名称将在传递给方言之前将下划线转换为空格。如果后端支持四个标准隔离级别的名称,则这些名称应为
READ UNCOMMITTED
READ COMMITTED
,REPEATABLE READ
,SERIALIZABLE
如果方言支持自动提交选项,则应使用隔离级别名称
AUTOCOMMIT
提供。其他隔离模式也可能存在,前提是它们以大写字母命名并使用空格而不是下划线。
此函数用于使默认方言可以检查给定的隔离级别参数是否有效,否则会引发
ArgumentError
。一个 DBAPI 连接被传递给该方法,在方言需要查询连接本身以确定此列表的极不可能的情况下,但预计大多数后端将返回一个硬编码的值列表。如果方言支持“AUTOCOMMIT”,则该值也应存在于返回的序列中。
默认情况下,该方法会引发
NotImplementedError
。如果方言没有实现此方法,则默认方言不会在将给定的隔离级别值传递给Dialect.set_isolation_level()
方法之前对其进行任何检查。这是为了允许与可能尚未实现此方法的第三方方言向后兼容。版本 2.0 中新增。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_materialized_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 继承自
Dialect.get_materialized_view_names()
方法Dialect
返回数据库中所有可用的物化视图名称列表。
这是一个内部方言方法。应用程序应该使用
Inspector.get_materialized_view_names()
。- 参数:
schema¶ –
要查询的模式名称,如果它不是默认模式。
版本 2.0 中新增。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_multi_check_constraints(connection, **kw)¶ 返回给定
schema
中所有表中的检查约束的信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_check_constraints()
.注意
The
DefaultDialect
提供了一个默认实现,它将为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()
.注意
The
DefaultDialect
提供了一个默认实现,它将为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)¶ 返回给定
schema
中所有表中的外键信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_foreign_keys()
。注意
The
DefaultDialect
提供了一个默认实现,它将为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()
.注意
The
DefaultDialect
提供了一个默认实现,它将为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()
.注意
The
DefaultDialect
提供了一个默认实现,它将为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()
。注意
The
DefaultDialect
提供了一个默认实现,它将为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()
。注意
The
DefaultDialect
提供了一个默认实现,它将为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()
.注意
The
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单个表方法,具体取决于提供的kind
。想要支持更快实现的方言应该实现此方法。版本 2.0 中新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_pk_constraint(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → ReflectedPrimaryKeyConstraint¶ 继承自
Dialect.get_pk_constraint()
方法Dialect
返回关于 table_name 的主键约束信息。
给定一个
Connection
,一个字符串table_name
,以及一个可选的字符串schema
,以对应于ReflectedPrimaryKeyConstraint
字典的字典形式返回主键信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_pk_constraint()
.
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_schema_names(connection: Connection, **kw: Any) → List[str]¶ 继承自
Dialect.get_schema_names()
方法Dialect
返回数据库中所有可用模式名称的列表。
这是一个内部方言方法。应用程序应该使用
Inspector.get_schema_names()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_sequence_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 继承自
Dialect.get_sequence_names()
方法Dialect
返回数据库中所有可用序列名称的列表。
这是一个内部方言方法。应用程序应该使用
Inspector.get_sequence_names()
。- 参数:
schema¶ – 要查询的模式名称,如果它不是默认模式。
版本 1.4 中的新功能。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_table_comment(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → ReflectedTableComment¶ 继承自
Dialect.get_table_comment()
方法Dialect
返回由
table_name
标识的表的“注释”。给定一个字符串
table_name
以及一个可选的字符串schema
,以对应于ReflectedTableComment
字典的字典形式返回表注释信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_table_comment()
.- 引发:
NotImplementedError
用于不支持注释的方言。
新功能版本 1.2。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_table_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 继承自
Dialect.get_table_names()
方法Dialect
返回
schema
的表名列表。这是一个内部方言方法。应用程序应该使用
Inspector.get_table_names()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_table_options(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → Dict[str, Any]¶ 继承自
Dialect.get_table_options()
方法Dialect
返回创建
table_name
时指定的选项的字典。这是一个内部方言方法。应用程序应该使用
Inspector.get_table_options()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_temp_table_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 继承自
Dialect.get_temp_table_names()
方法Dialect
返回给定连接上的临时表名称列表,如果底层后端支持。
这是一个内部方言方法。应用程序应该使用
Inspector.get_temp_table_names()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_temp_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 继承自
Dialect.get_temp_view_names()
方法Dialect
返回给定连接上的临时视图名称列表,如果底层后端支持。
这是一个内部方言方法。应用程序应该使用
Inspector.get_temp_view_names()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_unique_constraints(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedUniqueConstraint]¶ 继承自
Dialect.get_unique_constraints()
方法Dialect
返回
table_name
中唯一约束的信息。给定一个字符串
table_name
和一个可选的字符串schema
,返回唯一约束信息,作为与ReflectedUniqueConstraint
字典相对应的字典列表。这是一个内部方言方法。应用程序应该使用
Inspector.get_unique_constraints()
.
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_view_definition(connection: Connection, view_name: str, schema: str | None = None, **kw: Any) → str¶ 继承自
Dialect.get_view_definition()
方法Dialect
返回普通视图或物化视图定义。
这是一个内部方言方法。应用程序应该使用
Inspector.get_view_definition()
。给定一个
Connection
,一个字符串view_name
,和一个可选的字符串schema
,返回视图定义。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_view_names(connection: Connection, schema: str | None = 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
和一个字符串索引名称,如果在给定表上存在给定名称的索引,则返回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
通过检查Dialect.get_schema_names()
返回的模式中是否存在schema_name
来实现这一点,但是方言可以实现更高效的版本。这是一个内部方言方法。应用程序应使用
Inspector.has_schema()
。版本 2.0 中新增。
-
method
sqlalchemy.engine.default.DefaultDialect.
has_sequence(connection: Connection, sequence_name: str, schema: str | None = None, **kw: Any) → bool¶ 继承自
Dialect.has_sequence()
方法Dialect
检查数据库中是否存在特定序列。
给定一个
Connection
对象和一个字符串 sequence_name,如果给定序列存在于数据库中,则返回True
,否则返回False
。这是一个内部方言方法。应用程序应使用
Inspector.has_sequence()
。
-
method
sqlalchemy.engine.default.DefaultDialect.
has_table(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → bool¶ 继承自
Dialect.has_table()
方法Dialect
用于内部方言,检查数据库中是否存在特定表或视图。
给定一个
Connection
对象,一个字符串 table_name 和可选的模式名称,如果给定表存在于数据库中,则返回 True,否则返回 False。此方法充当面向公众的
Inspector.has_table()
方法的底层实现,并且还用于在内部实现Table.create()
和MetaData.create_all()
等方法的“checkfirst”行为。注意
此方法在 SQLAlchemy 内部使用,并且发布是为了让第三方方言提供实现。它不是用于检查表是否存在的面向公众的 API。请使用
Inspector.has_table()
方法。版本 2.0 中的更改:::
Dialect.has_table()
现在正式支持检查其他类似表的对象任何类型的视图(普通或物化的)
任何类型的临时表
以前,这两个检查没有正式指定,不同的方言在行为上会有所不同。方言测试套件现在包含针对所有这些对象类型的测试,并且方言(在支持数据库支持视图或临时表的程度上)应努力支持找到这些对象以实现完全合规性。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
has_terminate: bool = False¶ 此方言是否具有不阻塞或不需要等待的单独“终止”实现。
-
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 中更改: The
Dialect.import_dbapi()
类方法重命名自以前的方法.Dialect.dbapi()
,该方法将在方言实例化时被 DBAPI 模块本身替换,从而以两种不同的方式使用相同的名称。如果第三方方言上存在.Dialect.dbapi()
类方法,它将被使用,并且会发出弃用警告。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
include_set_input_sizes: Set[Any] | None = None¶ 应包含在自动 cursor.setinputsizes() 调用中的 DBAPI 类型对象的集合。
这仅在 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¶ 方言/驱动程序/数据库支持某些方法,在使用 dialect.do_executemany() 时提供 INSERT…RETURNING 支持。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insert_executemany_returning_sort_by_parameter_order: bool¶ 方言/驱动程序/数据库支持某些方法,在使用 dialect.do_executemany() 时,与
Insert.returning.sort_by_parameter_order
参数设置一起,提供 INSERT…RETURNING 支持。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insert_returning: bool = False¶ 如果方言支持 INSERT 的 RETURNING。
版本 2.0 中新增。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
insertmanyvalues_implicit_sentinel: InsertmanyvaluesSentinelOpts = symbol('NOT_SUPPORTED')¶ 选项指示数据库支持某种形式的批量 INSERT,其中自动增量整数主键可以用作 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¶ 对于
ExecuteStyle.INSERTMANYVALUES
执行,将呈现到单个 INSERT..VALUES() 语句中的行数。默认方言将此值默认为 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)¶ 如果给定的 DB-API 错误指示连接无效,则返回 True。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
label_length: int | None¶ 可选的由用户定义的 SQL 标签最大长度。
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
load_provisioning()¶ 为该方言设置 provision.py 模块。
对于包含 provision.py 模块以设置配置跟随者的方言,此方法应该启动该过程。
典型的实现方式如下
@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)¶ 如果检测到不区分大小写,则将给定名称转换为小写。
此方法仅在方言定义 requires_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 模式等。
使用
PoolEvents.connect()
事件钩子调用“do_on_connect”可调用函数,然后解包 DBAPI 连接并将它传递到可调用函数中。版本 1.4 中的更改: 对于方言的第一个连接,on_connect 钩子不再调用两次。但是,on_connect 钩子仍然在
Dialect.initialize()
方法之前调用。版本 1.4.3 中的更改: on_connect 钩子是从一个名为 on_connect_url 的新方法中调用的,该方法传递了用于创建连接参数的 URL。如果方言需要用于连接的 URL 对象以获取更多上下文,则方言可以实现 on_connect_url 而不是 on_connect。
如果返回 None,则不会生成任何事件监听器。
- 返回值:
接受单个 DBAPI 连接作为参数的可调用函数,或 None。
另请参见
Dialect.connect()
- 允许控制 DBAPIconnect()
序列本身。Dialect.on_connect_url()
- 取代Dialect.on_connect()
以接收上下文中的URL
对象。
-
method
sqlalchemy.engine.default.DefaultDialect.
on_connect_url(url: URL) → Callable[[Any], Any] | None¶ 继承自
Dialect.on_connect_url()
方法 ofDialect
返回一个可调用函数,该函数设置新创建的 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¶ – 代表传递给
Dialect.create_connect_args()
方法的URL
对象的URL
。- 返回值:
接受单个 DBAPI 连接作为参数的可调用函数,或 None。
另请参见
-
attribute
sqlalchemy.engine.default.DefaultDialect.
paramstyle: str¶ 要使用的参数样式(某些 DB-API 支持多个参数样式)。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
positional: bool¶ 如果此 Dialect 的参数样式是位置样式,则为 True。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
preexecute_autoincrement_sequences: bool = False¶ 如果“隐式”主键函数必须单独执行才能获取其值,则为 True,前提是未使用 RETURNING。
这目前针对 PostgreSQL 而言,当
implicit_returning=False
参数在Table
对象上使用时。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
preparer¶
-
attribute
sqlalchemy.engine.default.DefaultDialect.
reflection_options: Sequence[str] = ()¶ 继承自
Dialect.reflection_options
属性Dialect
表示字符串名称的序列,这些名称指示可以在
Table
对象上建立的关键字参数,这些参数将在使用Table.autoload_with
时作为“反射选项”传递。当前示例是 Oracle 方言中的“oracle_resolve_synonyms”。
-
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¶ 指示驱动程序是否为 SQL“二进制”数据类型以原生方式返回 Python bytes() 对象。
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¶ 已弃用;指示方言是否应该尝试默认使用服务器端游标
-
attribute
sqlalchemy.engine.default.DefaultDialect.
server_version_info: Tuple[Any, ...] | None = None¶ 包含正在使用的 DB 后端版本号的元组。
此值仅适用于支持的方言,通常在与数据库的初始连接期间填充。
-
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
实现的,以便为给定Engine
创建的新的Connection
实例建立事件钩子,然后将调用该连接的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¶ 别名
SQLCompiler
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_alter: bool = True¶ 如果数据库支持
ALTER TABLE
则为True
- 仅用于在某些情况下生成外键约束
-
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
在使用该类型时生成 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¶ 指示驱动程序是否为 SQL UUID 数据类型原生处理 Python UUID() 对象。
版本 2.0 中新增。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sane_multi_rowcount: bool = True¶ 指示方言是否在通过 executemany 执行
UPDATE
和DELETE
语句时正确实现 rowcount。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sane_rowcount: bool = True¶ 指示方言是否正确实现
UPDATE
和DELETE
语句的 rowcount。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_sane_rowcount_returning¶ 如果此方言即使在使用 RETURNING 时也支持正确的 rowcount,则为 True。
对于不支持 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> 指的是 SELECT 语句的 columns 子句中的标签
-
attribute
sqlalchemy.engine.default.DefaultDialect.
supports_statement_cache: bool = True¶ 指示此方言是否支持缓存。
所有与语句缓存兼容的方言都应该直接在每个支持缓存的方言类及其子类上将此标志设置为 True。SQLAlchemy 会在使用语句缓存之前测试此标志是否在每个方言子类上本地存在。这是为了为尚未完全测试以符合 SQL 语句缓存的旧有方言或新方言提供安全性。
版本 1.4.5 中的新增功能。
另请参见
-
属性
sqlalchemy.engine.default.DefaultDialect.
tuple_in_values: bool = False¶ 目标数据库支持元组 IN,例如 (x, y) IN ((q, p), (r, z))
-
属性
sqlalchemy.engine.default.DefaultDialect.
type_compiler: Any¶ 遗留;这是类级别的 TypeCompiler 类,实例级别的 TypeCompiler 实例。
请参阅 type_compiler_instance 代替。
-
属性
sqlalchemy.engine.default.DefaultDialect.
type_compiler_cls¶
-
属性
sqlalchemy.engine.default.DefaultDialect.
type_compiler_instance: TypeCompiler¶ Compiled
类的实例,用于编译 SQL 类型对象版本 2.0 中新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
type_descriptor(typeobj)¶ 提供数据库特定的
TypeEngine
对象,从 types 模块获取通用对象。此方法查找名为
colspecs
的字典作为类或实例级别的变量,并传递给adapt_type()
。
-
属性
sqlalchemy.engine.default.DefaultDialect.
update_executemany_returning: bool = False¶ 方言支持 UPDATE..RETURNING 与 executemany 一起使用。
-
属性
sqlalchemy.engine.default.DefaultDialect.
update_returning: bool = False¶ 如果方言支持 UPDATE 时的 RETURNING
版本 2.0 中新增。
-
属性
sqlalchemy.engine.default.DefaultDialect.
update_returning_multifrom: bool = False¶ 如果方言支持 UPDATE..FROM 时的 RETURNING
版本 2.0 中新增。
-
属性
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
执行,它允许使用 RETURNING 插入多行,通过将单行 INSERT 语句重写为具有多个 VALUES 子句,并且在给定大量行时,对一系列批次执行多次语句。该参数对于默认方言为 False,对于 SQLAlchemy 内部方言 SQLite、MySQL/MariaDB、PostgreSQL、SQL Server 则设置为 True。对于 Oracle,它仍然为 False,Oracle 提供了本机的“使用 RETURNING 的 executemany”支持,并且也不支持
supports_multivalues_insert
。对于 MySQL/MariaDB,不支持 RETURNING 的那些 MySQL 方言不会将insert_executemany_returning
报告为 True。版本 2.0 中新增。
另请参见
-
属性
sqlalchemy.engine.default.DefaultDialect.
use_insertmanyvalues_wo_returning: bool = False¶ 如果为 True,并且 use_insertmanyvalues 也为 True,不包含 RETURNING 的 INSERT 语句也将使用“insertmanyvalues”。
版本 2.0 中新增。
另请参见
-
attribute
- 类 sqlalchemy.engine.Dialect¶
定义特定数据库和 DB-API 组合的行为。
元数据定义、SQL 查询生成、执行、结果集处理或任何其他在数据库之间变化的方面都定义在方言的通用类别下。方言充当其他数据库特定对象实现(包括 ExecutionContext、Compiled、DefaultGenerator 和 TypeEngine)的工厂。
注意
第三方方言不应直接子类化
Dialect
。相反,应该子类化DefaultDialect
或其后代类。成员
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
)-
属性
sqlalchemy.engine.Dialect.
bind_typing = 1¶ 定义将类型信息传递给数据库和/或驱动程序以进行绑定参数的方法。
请参阅
BindTyping
以了解值。版本 2.0 中新增。
-
属性
sqlalchemy.engine.Dialect.
colspecs: MutableMapping[Type[TypeEngine[Any]], Type[TypeEngine[Any]]]¶ 来自 sqlalchemy.types 的 TypeEngine 类映射到特定于方言类的子类的字典。此字典仅在类级别,不会从方言实例本身访问。
-
方法
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: List[Tuple[Type[SchemaItem | ClauseElement], Mapping[str, Any]]] | None = None¶ 各种 SQLAlchemy 结构(通常是模式项)的可选参数规范集。
要实现,请建立一系列元组,如下所示
construct_arguments = [ (schema.Index, { "using": False, "where": None, "ops": None }) ]
如果上述结构在 PostgreSQL 方言上建立,则
Index
结构现在将接受关键字参数postgresql_using
、postgresql_where
和postgresql_ops
。任何其他指定给Index
构造函数的参数,如果以postgresql_
为前缀,则会引发ArgumentError
。没有包含
construct_arguments
成员的方言将不会参与参数验证系统。对于这样的方言,所有参与的结构都接受任何参数名称,在以该方言名称为前缀的参数命名空间内。这里的理由是,尚未实现此功能的第三方方言继续以旧的方式运行。另请参见
DialectKWArgs
- 实现消耗DefaultDialect.construct_arguments
的基类
-
method
sqlalchemy.engine.Dialect.
create_connect_args(url: URL) → ConnectArgsType¶ 构建与 DBAPI 兼容的连接参数。
给定一个
URL
对象,返回一个包含(*args, **kwargs)
的元组,适合直接发送到 dbapi 的 connect 函数。这些参数被发送到Dialect.connect()
方法,该方法然后运行 DBAPI 级别的connect()
函数。该方法通常利用
URL.translate_connect_args()
方法来生成选项字典。默认实现为
def create_connect_args(self, url): opts = url.translate_connect_args() opts.update(url.query) return ([], opts)
- 参数:
- 返回值:
将传递给
Dialect.connect()
方法的(*args, **kwargs)
元组。
-
method
sqlalchemy.engine.Dialect.
create_xid() → Any¶ 创建一个两阶段事务 ID。
此 ID 将传递给 do_begin_twophase()、do_rollback_twophase()、do_commit_twophase()。它的格式未指定。
-
attribute
sqlalchemy.engine.Dialect.
cte_follows_insert: bool¶ 目标数据库,当给定一个带有 INSERT 语句的 CTE 时,需要将 CTE 放在 INSERT 之后
-
attribute
sqlalchemy.engine.Dialect.
dbapi: ModuleType | None¶ 对 DBAPI 模块对象本身的引用。
SQLAlchemy 方言使用类方法
Dialect.import_dbapi()
导入 DBAPI 模块。这样做的理由是,任何方言模块都可以导入并用于生成 SQL 语句,而无需实际安装 DBAPI 驱动程序。只有当使用Engine
构造create_engine()
时,才会导入 DBAPI;此时,创建过程将 DBAPI 模块分配给此属性。因此,方言应该实现
Dialect.import_dbapi()
,它将导入必要的模块并返回它,然后在方言代码中引用self.dbapi
来引用 DBAPI 模块的内容。在版本 The 中更改:
Dialect.dbapi
属性专门用作对 DBAPI 模块的每个Dialect
实例的引用。以前未完全记录的.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: IsolationLevel | None¶ 新连接隐式存在的隔离级别。
-
attribute
sqlalchemy.engine.Dialect.
default_metavalue_token: str = 'DEFAULT'¶ 对于 INSERT… VALUES (DEFAULT) 语法,括号中要放置的标记。
例如,对于 SQLite,这是关键字“NULL”。
-
attribute
sqlalchemy.engine.Dialect.
default_schema_name: str | None¶ 默认模式的名称。此值仅适用于支持的方言,通常在首次连接到数据库时填充。
-
attribute
sqlalchemy.engine.Dialect.
default_sequence_base: int¶ 将作为 CREATE SEQUENCE DDL 语句的“START WITH”部分呈现的默认值。
-
attribute
sqlalchemy.engine.Dialect.
delete_executemany_returning: bool¶ 方言支持使用 executemany 的 DELETE..RETURNING。
-
attribute
sqlalchemy.engine.Dialect.
delete_returning: bool¶ 如果方言支持使用 DELETE 的 RETURNING。
版本 2.0 中新增。
-
attribute
sqlalchemy.engine.Dialect.
delete_returning_multifrom: bool¶ 如果方言支持使用 DELETE..FROM 的 RETURNING。
版本 2.0 中新增。
-
method
sqlalchemy.engine.Dialect.
denormalize_name(name: str) → str¶ 如果给定的名称是全小写,则将其转换为后端的区分大小写标识符。
此方法仅在方言定义 requires_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¶ – 一个
Connection
.xid¶ – xid
-
method
sqlalchemy.engine.Dialect.
do_close(dbapi_connection: DBAPIConnection) → None¶ 提供
connection.close()
的实现,给定一个 DB-API 连接。此钩子由
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¶ – 一个
Connection
.xid¶ – xid
is_prepared¶ – 是否调用了
TwoPhaseTransaction.prepare()
。recover¶ – 如果传递了 recover 标志。
-
method
sqlalchemy.engine.Dialect.
do_execute(cursor: DBAPICursor, statement: str, parameters: Sequence[Any] | Mapping[str, Any] | None, context: ExecutionContext | None = None) → None¶ 提供
cursor.execute(statement, parameters)
的实现。
-
method
sqlalchemy.engine.Dialect.
do_execute_no_params(cursor: DBAPICursor, statement: str, context: ExecutionContext | None = None) → None¶ 提供
cursor.execute(statement)
的实现。参数集合不应发送。
-
method
sqlalchemy.engine.Dialect.
do_executemany(cursor: DBAPICursor, statement: str, parameters: Sequence[Sequence[Any]] | Sequence[Mapping[str, Any]], context: ExecutionContext | None = None) → None¶ 提供
cursor.executemany(statement, parameters)
的实现。
-
method
sqlalchemy.engine.Dialect.
do_ping(dbapi_connection: DBAPIConnection) → bool¶ ping DBAPI 连接,如果连接可用则返回 True。
-
method
sqlalchemy.engine.Dialect.
do_prepare_twophase(connection: Connection, xid: Any) → None¶ 在给定连接上准备一个两阶段事务。
- 参数:
connection¶ – 一个
Connection
.xid¶ – xid
-
method
sqlalchemy.engine.Dialect.
do_recover_twophase(connection: Connection) → List[Any]¶ 恢复给定连接上未提交的已准备好的两阶段事务标识符列表。
- 参数:
connection¶ –
Connection
.
-
method
sqlalchemy.engine.Dialect.
do_release_savepoint(connection: Connection, name: str) → None¶ 在连接上释放命名保存点。
- 参数:
connection¶ –
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¶ –
Connection
.name¶ – 保存点名称。
-
method
sqlalchemy.engine.Dialect.
do_rollback_twophase(connection: Connection, xid: Any, is_prepared: bool = True, recover: bool = False) → None¶ 回滚给定连接上的两阶段事务。
- 参数:
connection¶ –
Connection
.xid¶ – xid
is_prepared¶ – 是否调用了
TwoPhaseTransaction.prepare()
.recover¶ – 如果传递了 recover 标志。
-
method
sqlalchemy.engine.Dialect.
do_savepoint(connection: Connection, name: str) → None¶ 创建具有给定名称的保存点。
- 参数:
connection¶ –
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 中更改: - 通过将
Dialect.bind_typing
设置为BindTyping.SETINPUTSIZES
来启用 setinputsizes 模式。接受use_setinputsizes
参数的方言应该相应地设置此值。
-
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: Set[Any] | None¶ DBAPI 类型对象的集合,这些对象应该在自动 cursor.setinputsizes() 调用中排除。
这仅在 bind_typing 为 BindTyping.SET_INPUT_SIZES 时使用
-
attribute
sqlalchemy.engine.Dialect.
execute_sequence_format: 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。
在大多数后端上,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: str | None = None, **kw: Any) → List[ReflectedCheckConstraint]¶ 返回关于
table_name
中检查约束的信息。给定一个字符串
table_name
和一个可选的字符串schema
,以与ReflectedCheckConstraint
字典相对应的字典列表形式返回检查约束信息。这是一个内部方言方法。应用程序应使用
Inspector.get_check_constraints()
。
-
method
sqlalchemy.engine.Dialect.
get_columns(connection: Connection, table_name: str, schema: str | None = 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]¶ 返回给定 URL 要使用的 Pool 类。
-
方法
sqlalchemy.engine.Dialect.
get_driver_connection(connection: DBAPIConnection) → Any¶ 返回由外部驱动程序包返回的连接对象。
对于使用符合 DBAPI 的驱动程序的普通方言,此调用将只返回作为参数传递的
connection
。对于改为调整非 DBAPI 兼容驱动程序的方言,例如在调整 asyncio 驱动程序时,此调用将返回驱动程序返回的连接类对象。新版 1.4.24 中的新增功能。
-
方法
sqlalchemy.engine.Dialect.
get_foreign_keys(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedForeignKeyConstraint]¶ 返回有关
table_name
中外键的信息。给定一个
Connection
、字符串table_name
以及可选的字符串schema
,返回外键信息,以与ReflectedForeignKeyConstraint
字典对应的字典列表形式。这是一个内部方言方法。应用程序应使用
Inspector.get_foreign_keys()
。
-
方法
sqlalchemy.engine.Dialect.
get_indexes(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedIndex]¶ 返回有关
table_name
中索引的信息。给定一个
Connection
、字符串table_name
以及可选的字符串schema
,返回索引信息,以与ReflectedIndex
字典对应的字典列表形式。这是一个内部方言方法。应用程序应使用
Inspector.get_indexes()
.
-
方法
sqlalchemy.engine.Dialect.
get_isolation_level(dbapi_connection: DBAPIConnection) → Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']¶ 给定一个 DBAPI 连接,返回其隔离级别。
在使用
Connection
对象时,可以使用Connection.connection
访问器获取相应的 DBAPI 连接。请注意,这是一个方言级别的方法,用作
Connection
和Engine
隔离级别功能实现的一部分;对于大多数典型用例,应优先使用这些 API。另请参见
Connection.get_isolation_level()
- 查看当前级别Connection.default_isolation_level
- 查看默认级别Connection.execution_options.isolation_level
- 设置每个Connection
隔离级别create_engine.isolation_level
- 设置每个Engine
隔离级别
-
方法
sqlalchemy.engine.Dialect.
get_isolation_level_values(dbapi_conn: DBAPIConnection) → List[Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']]¶ 返回此方言接受的字符串隔离级别名称序列。
可用名称应使用以下约定
使用大写名称。隔离级别方法将接受小写名称,但这些名称将在传递给方言之前被规范化为大写。
单独的词语应该用空格隔开,而不是下划线,例如
REPEATABLE READ
。隔离级别名称将在传递给方言之前将下划线转换为空格。如果后端支持四个标准隔离级别的名称,则这些名称应为
READ UNCOMMITTED
READ COMMITTED
,REPEATABLE READ
,SERIALIZABLE
如果方言支持自动提交选项,则应使用隔离级别名称
AUTOCOMMIT
提供。其他隔离模式也可能存在,前提是它们以大写字母命名并使用空格而不是下划线。
此函数用于使默认方言可以检查给定的隔离级别参数是否有效,否则会引发
ArgumentError
。一个 DBAPI 连接被传递给该方法,在方言需要查询连接本身以确定此列表的极不可能的情况下,但预计大多数后端将返回一个硬编码的值列表。如果方言支持“AUTOCOMMIT”,则该值也应存在于返回的序列中。
默认情况下,该方法会引发
NotImplementedError
。如果方言没有实现此方法,则默认方言不会在将给定的隔离级别值传递给Dialect.set_isolation_level()
方法之前对其进行任何检查。这是为了允许与可能尚未实现此方法的第三方方言向后兼容。版本 2.0 中新增。
-
方法
sqlalchemy.engine.Dialect.
get_materialized_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回数据库中所有可用的物化视图名称列表。
这是一个内部方言方法。应用程序应该使用
Inspector.get_materialized_view_names()
。- 参数:
schema¶ –
要查询的模式名称,如果它不是默认模式。
版本 2.0 中新增。
-
方法
sqlalchemy.engine.Dialect.
get_multi_check_constraints(connection: Connection, *, schema: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, List[ReflectedCheckConstraint]]]¶ 返回给定
schema
中所有表中的检查约束的信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_check_constraints()
.注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, List[ReflectedColumn]]]¶ 返回给定
schema
中所有表中的列信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_columns()
.注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, List[ReflectedForeignKeyConstraint]]]¶ 返回给定
schema
中所有表中的外键信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_foreign_keys()
。注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, List[ReflectedIndex]]]¶ 返回给定
schema
中所有表中的索引信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_indexes()
.注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] |返回给定
schema
中所有表中的主键约束信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_pk_constraint()
.注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, ReflectedTableComment]]¶ 返回给定
schema
中所有表中的表注释信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_table_comment()
。注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, Dict[str, Any]]]¶ 返回在创建给定模式中的表时指定的选项字典。
这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_table_options()
。注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, List[ReflectedUniqueConstraint]]]¶ 返回给定
schema
中所有表中的唯一约束信息。这是一个内部方言方法。应用程序应该使用
Inspector.get_multi_unique_constraints()
.注意
该
DefaultDialect
提供了一个默认的实现,将调用单个表方法以获取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: str | None = 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: str | None = 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: str | None = 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: str | None = None, **kw: Any) → List[str]¶ 返回
schema
的表名列表。这是一个内部方言方法。应用程序应该使用
Inspector.get_table_names()
。
-
method
sqlalchemy.engine.Dialect.
get_table_options(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → Dict[str, Any]¶ 返回创建
table_name
时指定的选项的字典。这是一个内部方言方法。应用程序应该使用
Inspector.get_table_options()
。
-
method
sqlalchemy.engine.Dialect.
get_temp_table_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回给定连接上的临时表名称列表,如果底层后端支持。
这是一个内部方言方法。应用程序应该使用
Inspector.get_temp_table_names()
。
-
method
sqlalchemy.engine.Dialect.
get_temp_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回给定连接上的临时视图名称列表,如果底层后端支持。
这是一个内部方言方法。应用程序应该使用
Inspector.get_temp_view_names()
。
-
method
sqlalchemy.engine.Dialect.
get_unique_constraints(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[ReflectedUniqueConstraint]¶ 返回
table_name
中唯一约束的信息。给定一个字符串
table_name
和一个可选的字符串schema
,返回唯一约束信息,作为与ReflectedUniqueConstraint
字典相对应的字典列表。这是一个内部方言方法。应用程序应该使用
Inspector.get_unique_constraints()
.
-
method
sqlalchemy.engine.Dialect.
get_view_definition(connection: Connection, view_name: str, schema: str | None = None 返回普通视图或物化视图定义。
这是一个内部方言方法。应用程序应该使用
Inspector.get_view_definition()
。给定一个
Connection
,一个字符串view_name
,和一个可选的字符串schema
,返回视图定义。
-
method
sqlalchemy.engine.Dialect.
get_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回数据库中所有非物化视图名称的列表。
这是一个内部方言方法。应用程序应该使用
Inspector.get_view_names()
。- 参数:
schema¶ – schema name to query, if not the default schema.
-
method
sqlalchemy.engine.Dialect.
has_index(connection: Connection, table_name: str, index_name: str, schema: str | None = None, **kw: Any) → bool¶ 检查数据库中是否存在特定索引名称。
给定一个
Connection
对象,一个字符串table_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
通过检查Dialect.get_schema_names()
返回的模式中是否存在schema_name
来实现这一点,但是方言可以实现更高效的版本。这是一个内部方言方法。应用程序应使用
Inspector.has_schema()
。版本 2.0 中新增。
-
method
sqlalchemy.engine.Dialect.
has_sequence(connection: Connection, sequence_name: str, schema: str | None = None, **kw: Any) → bool¶ 检查数据库中是否存在特定序列。
给定一个
Connection
对象和一个字符串 sequence_name,如果给定序列存在于数据库中,则返回True
,否则返回False
。这是一个内部方言方法。应用程序应使用
Inspector.has_sequence()
。
-
方法
sqlalchemy.engine.Dialect.
has_table(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → bool¶ 用于内部方言,检查数据库中是否存在特定表或视图。
给定一个
Connection
对象,一个字符串 table_name 和可选的模式名称,如果给定表存在于数据库中,则返回 True,否则返回 False。此方法充当面向公众的
Inspector.has_table()
方法的底层实现,并且还用于在内部实现Table.create()
和MetaData.create_all()
等方法的“checkfirst”行为。注意
此方法在 SQLAlchemy 内部使用,并且发布是为了让第三方方言提供实现。它不是用于检查表是否存在的面向公众的 API。请使用
Inspector.has_table()
方法。版本 2.0 中的更改:::
Dialect.has_table()
现在正式支持检查其他类似表的对象任何类型的视图(普通或物化的)
任何类型的临时表
以前,这两个检查没有正式指定,不同的方言在行为上会有所不同。方言测试套件现在包含针对所有这些对象类型的测试,并且方言(在支持数据库支持视图或临时表的程度上)应努力支持找到这些对象以实现完全合规性。
-
属性
sqlalchemy.engine.Dialect.
has_terminate: bool¶ 此方言是否具有不阻塞或不需要等待的单独“终止”实现。
-
属性
sqlalchemy.engine.Dialect.
identifier_preparer: IdentifierPreparer¶ 此元素将引用
IdentifierPreparer
的一个实例,一旦DefaultDialect
被构造。
-
类方法
sqlalchemy.engine.Dialect.
import_dbapi() → module¶ 导入此方言使用的 DBAPI 模块。
此处返回的 Python 模块对象将作为实例变量分配给构造的方言,名称为
.dbapi
。在版本 2.0 中更改: The
Dialect.import_dbapi()
类方法重命名自以前的方法.Dialect.dbapi()
,该方法将在方言实例化时被 DBAPI 模块本身替换,从而以两种不同的方式使用相同的名称。如果第三方方言上存在.Dialect.dbapi()
类方法,它将被使用,并且会发出弃用警告。
-
属性
sqlalchemy.engine.Dialect.
include_set_input_sizes: Set[Any] | None¶ 应包含在自动 cursor.setinputsizes() 调用中的 DBAPI 类型对象的集合。
这仅在 bind_typing 为 BindTyping.SET_INPUT_SIZES 时使用
-
方法
sqlalchemy.engine.Dialect.
initialize(connection: Connection) → None¶ 在使用连接策略化创建方言时调用。
允许方言根据服务器版本信息或其他属性配置选项。
此处传递的连接是 SQLAlchemy Connection 对象,具有完整功能。
基本方言的 initialize() 方法应通过 super() 调用。
注意
从 SQLAlchemy 1.4 开始,此方法在任何
Dialect.on_connect()
钩子被调用之前调用。
-
属性
sqlalchemy.engine.Dialect.
inline_comments: bool¶ 指示方言支持与表或列定义内联的注释 DDL。如果为 False,这意味着必须使用 ALTER 来设置表和列注释。
-
属性
sqlalchemy.engine.Dialect.
insert_executemany_returning: bool¶ 方言/驱动程序/数据库支持某些方法,在使用 dialect.do_executemany() 时提供 INSERT…RETURNING 支持。
-
属性
sqlalchemy.engine.Dialect.
insert_executemany_returning_sort_by_parameter_order: bool¶ 方言/驱动程序/数据库支持某些方法,在使用 dialect.do_executemany() 时,与
Insert.returning.sort_by_parameter_order
参数设置一起,提供 INSERT…RETURNING 支持。
-
属性
sqlalchemy.engine.Dialect.
insert_returning: bool¶ 如果方言支持 INSERT 的 RETURNING。
版本 2.0 中新增。
-
属性
sqlalchemy.engine.Dialect.
insertmanyvalues_implicit_sentinel: InsertmanyvaluesSentinelOpts¶ 选项指示数据库支持某种形式的批量 INSERT,其中自动增量整数主键可以用作 INSERT 行的可靠排序。
版本 2.0.10 中的新增功能。
另请参见
-
属性
sqlalchemy.engine.Dialect.
insertmanyvalues_max_parameters: int¶ insertmanyvalues_page_size 的替代方法,将根据语句中的参数总数额外限制页面大小。
-
属性
sqlalchemy.engine.Dialect.
insertmanyvalues_page_size: int¶ 对于
ExecuteStyle.INSERTMANYVALUES
执行,将呈现到单个 INSERT..VALUES() 语句中的行数。默认方言将此值默认为 1000。
版本 2.0 中新增。
另请参见
Connection.execution_options.insertmanyvalues_page_size
- 在Connection
上可用的执行选项,语句
-
属性
sqlalchemy.engine.Dialect.
is_async: bool¶ 此方言是否适用于 asyncio。
-
方法
sqlalchemy.engine.Dialect.
is_disconnect(e: Exception, connection: PoolProxiedConnection | DBAPIConnection | None, cursor: DBAPICursor | None) → bool¶ 如果给定的 DB-API 错误指示连接无效,则返回 True。
-
属性
sqlalchemy.engine.Dialect.
label_length: int | None¶ 可选的由用户定义的 SQL 标签最大长度。
-
类方法
sqlalchemy.engine.Dialect.
load_provisioning() → None¶ 为该方言设置 provision.py 模块。
对于包含 provision.py 模块以设置配置跟随者的方言,此方法应该启动该过程。
典型的实现方式如下
@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 中的新增功能。
-
属性
sqlalchemy.engine.Dialect.
loaded_dbapi¶ 与 .dbapi 相同,但永远不会是 None;如果未设置 DBAPI,则会引发错误。
版本 2.0 中新增。
-
属性
sqlalchemy.engine.Dialect.
max_identifier_length: int¶ 标识符名称的最大长度。
-
属性
sqlalchemy.engine.Dialect.
name: str¶ 从 DBAPI 中立的角度(即 'sqlite')识别方言的名称。
-
方法
sqlalchemy.engine.Dialect.
normalize_name(name: str) → str¶ 如果检测到不区分大小写,则将给定名称转换为小写。
此方法仅在方言定义 requires_name_normalize=True 时使用。
-
方法
sqlalchemy.engine.Dialect.
on_connect() → Callable[[Any], Any] | None¶ 返回一个可调用函数,该函数设置新创建的 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 模式等。
使用
PoolEvents.connect()
事件钩子调用“do_on_connect”可调用函数,然后解包 DBAPI 连接并将它传递到可调用函数中。版本 1.4 中的更改: 对于方言的第一个连接,on_connect 钩子不再调用两次。但是,on_connect 钩子仍然在
Dialect.initialize()
方法之前调用。版本 1.4.3 中的更改: on_connect 钩子是从一个名为 on_connect_url 的新方法中调用的,该方法传递了用于创建连接参数的 URL。如果方言需要用于连接的 URL 对象以获取更多上下文,则方言可以实现 on_connect_url 而不是 on_connect。
如果返回 None,则不会生成任何事件监听器。
- 返回值:
接受单个 DBAPI 连接作为参数的可调用函数,或 None。
另请参见
Dialect.connect()
- 允许控制 DBAPIconnect()
序列本身。Dialect.on_connect_url()
- 取代Dialect.on_connect()
以接收上下文中的URL
对象。
-
方法
sqlalchemy.engine.Dialect.
on_connect_url(url: URL) → Callable[[Any], Any] | None¶ 返回一个可调用函数,该函数设置新创建的 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
对象,表示传递给Dialect.create_connect_args()
方法的URL
。- 返回值:
接受单个 DBAPI 连接作为参数的可调用函数,或 None。
另请参见
-
attribute
sqlalchemy.engine.Dialect.
paramstyle: str¶ 要使用的参数样式(某些 DB-API 支持多个参数样式)。
-
attribute
sqlalchemy.engine.Dialect.
positional: bool¶ 如果此 Dialect 的参数样式是位置样式,则为 True。
-
attribute
sqlalchemy.engine.Dialect.
preexecute_autoincrement_sequences: bool¶ 如果“隐式”主键函数必须单独执行才能获取其值,则为 True,前提是未使用 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 方言中的“oracle_resolve_synonyms”。
-
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¶ 指示驱动程序是否为 SQL“二进制”数据类型以原生方式返回 Python bytes() 对象。
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¶ 已弃用;指示方言是否应该尝试默认使用服务器端游标
-
attribute
sqlalchemy.engine.Dialect.
server_version_info: Tuple[Any, ...] | None¶ 包含正在使用的 DB 后端版本号的元组。
此值仅适用于支持的方言,通常在与数据库的初始连接期间填充。
-
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
实现的,以便为给定Engine
创建的新的Connection
实例建立事件钩子,然后将调用该连接的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¶ 如果数据库支持
ALTER TABLE
则为True
- 仅用于在某些情况下生成外键约束
-
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¶ 方言支持 INSERT () VALUES (),即没有列的普通 INSERT。
这通常不受支持;“空”插入通常使用“INSERT..DEFAULT VALUES”或“INSERT … (col) VALUES (DEFAULT)”来实现。
-
attribute
sqlalchemy.engine.Dialect.
supports_identity_columns: bool¶ 目标数据库支持 IDENTITY
-
属性
sqlalchemy.engine.Dialect.
supports_multivalues_insert: bool¶ 目标数据库支持带有多个值集的 INSERT…VALUES,例如 INSERT INTO table (cols) VALUES (…), (…), (…), …
-
属性
sqlalchemy.engine.Dialect.
supports_native_boolean: bool¶ 指示方言是否支持原生布尔结构。这将阻止
Boolean
在使用该类型时生成 CHECK 约束。
-
属性
sqlalchemy.engine.Dialect.
supports_native_decimal: bool¶ 指示是否为精确数值类型处理和返回 Decimal 对象,或者是否返回浮点数。
-
属性
sqlalchemy.engine.Dialect.
supports_native_enum: bool¶ 指示方言是否支持原生 ENUM 结构。这将阻止
Enum
在以“原生”模式使用该类型时生成 CHECK 约束。
-
属性
sqlalchemy.engine.Dialect.
supports_native_uuid: bool¶ 指示驱动程序是否为 SQL UUID 数据类型原生处理 Python UUID() 对象。
版本 2.0 中新增。
-
属性
sqlalchemy.engine.Dialect.
supports_sane_multi_rowcount: bool¶ 指示方言是否在通过 executemany 执行
UPDATE
和DELETE
语句时正确实现 rowcount。
-
属性
sqlalchemy.engine.Dialect.
supports_sane_rowcount: bool¶ 指示方言是否正确实现
UPDATE
和DELETE
语句的 rowcount。
-
属性
sqlalchemy.engine.Dialect.
supports_sequences: bool¶ 指示方言是否支持 CREATE SEQUENCE 或类似的命令。
-
属性
sqlalchemy.engine.Dialect.
supports_server_side_cursors: bool¶ 指示方言是否支持服务器端游标
-
属性
sqlalchemy.engine.Dialect.
supports_simple_order_by_label: bool¶ 目标数据库支持 ORDER BY <labelname>,其中 <labelname> 指的是 SELECT 语句的 columns 子句中的标签
-
属性
sqlalchemy.engine.Dialect.
supports_statement_cache: bool = True¶ 指示此方言是否支持缓存。
所有与语句缓存兼容的方言都应该直接在每个支持缓存的方言类及其子类上将此标志设置为 True。SQLAlchemy 会在使用语句缓存之前测试此标志是否在每个方言子类上本地存在。这是为了为尚未完全测试以符合 SQL 语句缓存的旧有方言或新方言提供安全性。
版本 1.4.5 中的新增功能。
另请参见
-
属性
sqlalchemy.engine.Dialect.
tuple_in_values: bool¶ 目标数据库支持元组 IN,例如 (x, y) IN ((q, p), (r, z))
-
属性
sqlalchemy.engine.Dialect.
type_compiler: Any¶ 遗留;这是类级别的 TypeCompiler 类,实例级别的 TypeCompiler 实例。
请参阅 type_compiler_instance 代替。
-
属性
sqlalchemy.engine.Dialect.
type_compiler_cls: ClassVar[Type[TypeCompiler]]¶ 用于编译 SQL 类型对象的
Compiled
类版本 2.0 中新增。
-
属性
sqlalchemy.engine.Dialect.
type_compiler_instance: TypeCompiler¶ Compiled
类的实例,用于编译 SQL 类型对象版本 2.0 中新增。
-
方法
sqlalchemy.engine.Dialect.
type_descriptor(typeobj: TypeEngine[_T]) → TypeEngine[_T]¶ 将通用类型转换为特定于方言的类型。
方言类通常会使用
adapt_type()
函数在类型模块中实现这一点。返回的结果被每个方言类缓存,因此不能包含方言实例状态。
-
属性
sqlalchemy.engine.Dialect.
update_executemany_returning: bool¶ 方言支持 UPDATE..RETURNING 与 executemany 一起使用。
-
属性
sqlalchemy.engine.Dialect.
update_returning: bool¶ 如果方言支持 UPDATE 时的 RETURNING
版本 2.0 中新增。
-
属性
sqlalchemy.engine.Dialect.
update_returning_multifrom: bool¶ 如果方言支持 UPDATE..FROM 时的 RETURNING
版本 2.0 中新增。
-
属性
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
执行,它允许使用 RETURNING 插入多行,通过将单行 INSERT 语句重写为具有多个 VALUES 子句,并且在给定大量行时,对一系列批次执行多次语句。该参数对于默认方言为 False,对于 SQLAlchemy 内部方言 SQLite、MySQL/MariaDB、PostgreSQL、SQL Server 则设置为 True。对于 Oracle,它仍然为 False,Oracle 提供了本机的“使用 RETURNING 的 executemany”支持,并且也不支持
supports_multivalues_insert
。对于 MySQL/MariaDB,不支持 RETURNING 的那些 MySQL 方言不会将insert_executemany_returning
报告为 True。版本 2.0 中新增。
另请参见
-
属性
sqlalchemy.engine.Dialect.
use_insertmanyvalues_wo_returning: bool¶ 如果为 True,并且 use_insertmanyvalues 也为 True,不包含 RETURNING 的 INSERT 语句也将使用“insertmanyvalues”。
版本 2.0 中新增。
另请参见
-
属性
- 类 sqlalchemy.engine.default.DefaultExecutionContext¶
成员
compiled,connection,create_cursor(),current_parameters,cursor,dialect,engine,execute_style,executemany,execution_options,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
类签名
class
sqlalchemy.engine.default.DefaultExecutionContext
(sqlalchemy.engine.interfaces.ExecutionContext
)-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
compiled: Compiled | None = None¶ 如果传递给构造函数,则为正在执行的 sqlalchemy.engine.base.Compiled 对象。
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
connection: Connection¶ Connection 对象,默认值生成器可以自由使用它来执行 SQL。 此 Connection 应引用与 root_connection 相同的基础连接/事务资源。
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
create_cursor()¶ 返回从此 ExecutionContext 的连接生成的新的游标。
某些方言可能希望更改 connection.cursor() 的行为,例如 postgresql 可能会返回 PG “服务器端” 游标。
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
current_parameters: _CoreSingleExecuteParams | None = 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¶ Connection 关联的引擎
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
execute_style: ExecuteStyle = 0¶ 将用于执行语句的 DBAPI 游标方法的样式。
版本 2.0 中新增。
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
executemany: bool¶ 如果上下文具有多个参数集,则为 True。
历史上,此属性链接到是否使用
cursor.execute()
或cursor.executemany()
。 它现在也可能意味着将使用“insertmanyvalues”,它指示一个或多个cursor.execute()
调用。
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
execution_options: _ExecuteOptions = {}¶ 与当前语句执行相关的执行选项
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
fetchall_for_returning(cursor)¶ 对于 RETURNING 结果,从 DBAPI 游标中获取 cursor.fetchall()。
这是一个特定于方言的钩子,用于那些在调用 “RETURNING” 语句返回的行时有特殊考虑的方言。默认实现为
cursor.fetchall()
。此钩子目前仅由 insertmanyvalues 功能使用。没有设置
use_insertmanyvalues=True
的方言不需要考虑此钩子。版本 2.0.10 中的新增功能。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
get_current_parameters(isolate_multiinsert_groups=True)¶ 返回应用于当前行的参数字典。
此方法只能在用户定义的默认生成函数的上下文中使用,例如在 上下文敏感的默认函数 中所述。当调用时,将返回一个字典,其中包含 INSERT 或 UPDATE 语句中包含的每个列/值对的条目。字典的键将是每个
Column
的键值,通常与名称相同。- 参数:
isolate_multiinsert_groups=True¶ – 指示使用
Insert.values()
创建的多值 INSERT 结构应通过仅返回当前列默认调用局部参数的子集来处理。当为False
时,将返回语句的原始参数,包括在多值 INSERT 情况下使用的命名约定。
新版功能 1.2: 添加了
DefaultExecutionContext.get_current_parameters()
,它提供了比现有DefaultExecutionContext.current_parameters
属性更多的功能。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
get_lastrowid()¶ 在 INSERT 后返回 self.cursor.lastrowid 或等效项。
这可能涉及调用特殊的游标函数,在游标(或新的游标)上发出新的 SELECT,或返回在 post_exec() 中计算的存储值。
此函数仅针对支持 “隐式” 主键生成的方言调用,将 preexecute_autoincrement_sequences 设置为 False,以及当没有显式 ID 值绑定到语句时调用。
该函数对于需要为那些使用 lastrowid 概念的方言返回最后插入的主键的 INSERT 语句调用一次。在这种情况下,它在
ExecutionContext.post_exec()
之后直接调用。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
get_out_parameter_values(names)¶ 从游标返回一系列 OUT 参数值。
对于支持 OUT 参数的方言,当存在一个
SQLCompiler
对象,该对象设置了SQLCompiler.has_out_parameters
标志时,将调用此方法。反过来,如果语句本身具有BindParameter
对象,这些对象具有由SQLCompiler.visit_bindparam()
方法消耗的.isoutparam
标志,则将设置此标志。如果方言编译器生成BindParameter
对象,这些对象具有未由SQLCompiler.visit_bindparam()
处理的.isoutparam
,则应显式设置此标志。将传递每个绑定参数的渲染名称列表到该方法。然后,该方法应返回与参数对象列表相对应的一系列值。与之前的 SQLAlchemy 版本不同,这些值可以是 DBAPI 中的原始值;执行上下文将根据 self.compiled.binds 中存在的类型处理程序应用适当的类型处理程序,并更新这些值。然后,处理后的字典将通过结果对象上的
.out_parameters
集合提供。请注意,SQLAlchemy 1.4 作为 2.0 过渡的一部分具有多种类型的结果对象。新版功能 1.4: - 添加了
ExecutionContext.get_out_parameter_values()
,当存在具有.isoutparam
标志的BindParameter
对象时,它会由DefaultExecutionContext
自动调用。这取代了在现在已删除的get_result_proxy()
方法中设置输出参数的做法。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
get_result_processor(type_, colname, coltype)¶ 返回存在于 cursor.description 中的给定类型的“结果处理程序”。
它有一个默认实现,方言可以覆盖以进行上下文敏感的结果类型处理。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
handle_dbapi_exception(e)¶ 接收在执行、结果获取等操作时发生的 DBAPI 异常。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
invoked_statement: Executable | None = None¶ 最初提供的 Executable 语句对象。
这应该在结构上等效于 compiled.statement,但不一定与缓存方案中的同一个对象相同,因为编译后的形式将从缓存中提取。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
isinsert: bool = False¶ 如果语句是 INSERT,则为 True。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
isupdate: bool = False¶ 如果语句是 UPDATE,则为 True。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
lastrow_has_defaults()¶ 如果最后一个 INSERT 或 UPDATE 行包含内联或数据库端默认值,则返回 True。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
no_parameters: bool¶ 如果执行风格不使用参数,则为 True
-
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[Sequence[Column[Any]] | None]¶ 已触发服务器端默认值或内联 SQL 表达式值的 Column 对象列表。适用于插入和更新。
-
method
sqlalchemy.engine.default.DefaultExecutionContext.
pre_exec()¶ 在执行编译后的语句之前调用。
如果编译后的语句传递给此 ExecutionContext,则 statement 和 parameters 数据成员必须在此语句完成后初始化。
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
prefetch_cols: util.generic_fn_descriptor[Sequence[Column[Any]] | None]¶ 已触发客户端端默认值的 Column 对象列表。适用于插入和更新。
-
attribute
sqlalchemy.engine.default.DefaultExecutionContext.
root_connection: Connection¶ 此 ExecutionContext 的来源的 Connection 对象。
-
attribute
- class sqlalchemy.engine.ExecutionContext¶
成员
compiled, connection, create_cursor(), cursor, dialect, engine, execute_style, executemany, execution_options, 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
与单个执行相对应的 Dialect 的消息传递对象。
-
attribute
sqlalchemy.engine.ExecutionContext.
compiled: Compiled | None¶ 如果传递给构造函数,则为正在执行的 sqlalchemy.engine.base.Compiled 对象。
-
attribute
sqlalchemy.engine.ExecutionContext.
connection: Connection¶ Connection 对象,默认值生成器可以自由使用它来执行 SQL。 此 Connection 应引用与 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¶ Connection 关联的引擎
-
attribute
sqlalchemy.engine.ExecutionContext.
execute_style: ExecuteStyle¶ 将用于执行语句的 DBAPI 游标方法的样式。
版本 2.0 中新增。
-
attribute
sqlalchemy.engine.ExecutionContext.
executemany: bool¶ 如果上下文具有多个参数集,则为 True。
历史上,此属性链接到是否使用
cursor.execute()
或cursor.executemany()
。 它现在也可能意味着将使用“insertmanyvalues”,它指示一个或多个cursor.execute()
调用。
-
attribute
sqlalchemy.engine.ExecutionContext.
execution_options: _ExecuteOptions¶ 与当前语句执行相关的执行选项
-
method
sqlalchemy.engine.ExecutionContext.
fetchall_for_returning(cursor: DBAPICursor) → Sequence[Any]¶ 对于 RETURNING 结果,从 DBAPI 游标中获取 cursor.fetchall()。
这是一个特定于方言的钩子,用于那些在调用 “RETURNING” 语句返回的行时有特殊考虑的方言。默认实现为
cursor.fetchall()
。此钩子目前仅由 insertmanyvalues 功能使用。没有设置
use_insertmanyvalues=True
的方言不需要考虑此钩子。版本 2.0.10 中的新增功能。
-
method
sqlalchemy.engine.ExecutionContext.
fire_sequence(seq: Sequence_SchemaItem, type_: Integer) → int¶ 给定一个
Sequence
,调用它并返回下一个整数。
-
method
sqlalchemy.engine.ExecutionContext.
get_out_parameter_values(out_param_names: Sequence[str]) → Sequence[Any]¶ 从游标返回一系列 OUT 参数值。
对于支持 OUT 参数的方言,当存在一个
SQLCompiler
对象,该对象设置了SQLCompiler.has_out_parameters
标志时,将调用此方法。反过来,如果语句本身具有BindParameter
对象,这些对象具有由SQLCompiler.visit_bindparam()
方法消耗的.isoutparam
标志,则将设置此标志。如果方言编译器生成BindParameter
对象,这些对象具有未由SQLCompiler.visit_bindparam()
处理的.isoutparam
,则应显式设置此标志。将传递每个绑定参数的渲染名称列表到该方法。然后,该方法应返回与参数对象列表相对应的一系列值。与之前的 SQLAlchemy 版本不同,这些值可以是 DBAPI 中的原始值;执行上下文将根据 self.compiled.binds 中存在的类型处理程序应用适当的类型处理程序,并更新这些值。然后,处理后的字典将通过结果对象上的
.out_parameters
集合提供。请注意,SQLAlchemy 1.4 作为 2.0 过渡的一部分具有多种类型的结果对象。新版功能 1.4: - 添加了
ExecutionContext.get_out_parameter_values()
,当存在具有.isoutparam
标志的BindParameter
对象时,它会由DefaultExecutionContext
自动调用。这取代了在现在已删除的get_result_proxy()
方法中设置输出参数的做法。
-
method
sqlalchemy.engine.ExecutionContext.
get_rowcount() → int | None¶ 返回 DBAPI
cursor.rowcount
值,或在某些情况下为解释后的值。有关此的详细信息,请参阅
CursorResult.rowcount
。
-
method
sqlalchemy.engine.ExecutionContext.
handle_dbapi_exception(e: BaseException) → None¶ 接收在执行、结果获取等操作时发生的 DBAPI 异常。
-
attribute
sqlalchemy.engine.ExecutionContext.
invoked_statement: Executable | None¶ 最初提供的 Executable 语句对象。
这应该在结构上等效于 compiled.statement,但不一定与缓存方案中的同一个对象相同,因为编译后的形式将从缓存中提取。
-
attribute
sqlalchemy.engine.ExecutionContext.
isinsert: bool¶ 如果语句是 INSERT,则为 True。
-
attribute
sqlalchemy.engine.ExecutionContext.
isupdate: bool¶ 如果语句是 UPDATE,则为 True。
-
method
sqlalchemy.engine.ExecutionContext.
lastrow_has_defaults() → bool¶ 如果最后一个 INSERT 或 UPDATE 行包含内联或数据库端默认值,则返回 True。
-
attribute
sqlalchemy.engine.ExecutionContext.
no_parameters: bool¶ 如果执行风格不使用参数,则为 True
-
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[Sequence[Column[Any]] | None]¶ 已触发服务器端默认值或内联 SQL 表达式值的 Column 对象列表。适用于插入和更新。
-
method
sqlalchemy.engine.ExecutionContext.
pre_exec() → None¶ 在执行编译后的语句之前调用。
如果编译后的语句传递给此 ExecutionContext,则 statement 和 parameters 数据成员必须在此语句完成后初始化。
-
attribute
sqlalchemy.engine.ExecutionContext.
prefetch_cols: util.generic_fn_descriptor[Sequence[Column[Any]] | None]¶ 已触发客户端端默认值的 Column 对象列表。适用于插入和更新。
-
attribute
sqlalchemy.engine.ExecutionContext.
root_connection: Connection¶ 此 ExecutionContext 的来源的 Connection 对象。
-
attribute
sqlalchemy.engine.ExecutionContext.
statement: str¶ 要执行的语句的字符串版本。传递给构造函数,或在 pre_exec() 完成后必须从 sql.Compiled 对象创建。
-
attribute
- class sqlalchemy.sql.compiler.ExpandedState¶
表示在生成语句的“扩展”和“编译后”绑定参数时使用的状态。
“扩展”参数是在语句执行时生成的,以适应传递的一系列参数,最突出的例子是 IN 表达式中的各个元素。
“编译后”参数是在执行时将 SQL 字面值渲染到 SQL 语句中的参数,而不是作为单独的参数传递给驱动程序。
要创建
ExpandedState
实例,请使用SQLCompiler.construct_expanded_state()
方法,该方法适用于任何SQLCompiler
实例。成员
additional_parameters, parameter_expansion, parameters, positional_parameters, positiontup, processors, statement
类签名
class
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: Sequence[str] | None¶ 指示位置参数顺序的字符串名称序列
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
processors: Mapping[str, _BindProcessorType[Any]]¶ 绑定值处理器的映射
-
attribute
sqlalchemy.sql.compiler.ExpandedState.
statement: str¶ 带有完全扩展参数的字符串 SQL 语句
-
attribute
- class sqlalchemy.sql.compiler.GenericTypeCompiler¶
成员
类签名
class
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¶
成员
__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
开始定界标识符的字符。
- final_quote
结束定界标识符的字符。默认值为 initial_quote。
- omit_schema
防止在前面加上模式名称。适用于不支持模式的数据库。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
format_column(column, use_table=False, name=None, table_name=None, use_schema=False, anon_map=None)¶ 准备一个带引号的列名。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
format_label_name(name, anon_map=None)¶ 准备一个带引号的列名。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
format_schema(name)¶ 准备一个带引号的模式名。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
format_table(table, use_schema=True, name=None)¶ 准备一个带引号的表名和模式名。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
format_table_seq(table, use_schema=True)¶ 格式化表名和模式为一个元组。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
quote(ident: str, force: Any | None = None) → str¶ 有条件地引用标识符。
如果标识符是保留字,包含需要引号的字符,或者是一个
quoted_name
的实例,其中包含quote
设置为True
,则会引用标识符。子类可以重写此方法,为标识符名称提供数据库相关的引用行为。
- 参数:
ident¶ – 字符串标识符
force¶ –
未使用的
自版本 0.9 起已弃用: The
IdentifierPreparer.quote.force
parameter is deprecated and will be removed in a future release. This flag has no effect on the behavior of theIdentifierPreparer.quote()
method; please refer toquoted_name
.
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
quote_identifier(value: str) → str¶ 引用标识符。
子类应该重写此方法,提供数据库相关的引用行为。
-
方法
sqlalchemy.sql.compiler.IdentifierPreparer.
quote_schema(schema: str, force: Any | None = None) → str¶ 有条件地引用模式名。
如果名称是保留字,包含需要引号的字符,或者是一个
quoted_name
的实例,其中包含quote
设置为True
,则会引用名称。子类可以重写此方法,为模式名提供数据库相关的引用行为。
- 参数:
schema¶ – 字符串模式名
force¶ –
未使用的
自版本 0.9 起已弃用: The
IdentifierPreparer.quote_schema.force
parameter is deprecated and will be removed in a future release. This flag has no effect on the behavior of theIdentifierPreparer.quote()
method; please refer toquoted_name
.
-
属性
sqlalchemy.sql.compiler.IdentifierPreparer.
schema_for_object: _SchemaForObjectCallable = operator.attrgetter('schema')¶ 返回对象的 .schema 属性。
对于默认的 IdentifierPreparer,对象的模式始终是 “.schema” 属性的值。如果 preparer 被替换为一个具有非空 schema_translate_map 的 preparer,则 “.schema” 属性的值将被渲染为一个符号,该符号将在编译后从映射中转换为真正的模式名。
-
方法
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 字符串。成员
__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(), visit_override_binds()
-
method
sqlalchemy.sql.compiler.SQLCompiler.
__init__(dialect: Dialect, statement: ClauseElement | None, cache_key: CacheKey | None = None, column_keys: Sequence[str] | None = None, for_executemany: bool = False, linting: Linting = Linting.NO_LINTING, _supporting_against: SQLCompiler | None = None, **kwargs: Any)¶ 构造一个新的
SQLCompiler
对象。- 参数:
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
ansi_bind_rules: bool = False¶ SQL 92 不允许在 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', '[': '_', ']': '_'}¶ 一个映射(例如字典或类似的),包含一个字符到替换字符的查找,这些字符将应用于 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¶ 编译器在应用位置 paramstyle 之前用于渲染参数的模板
-
method
sqlalchemy.sql.compiler.SQLCompiler.
construct_expanded_state(params: _CoreSingleExecuteParams | None = None, escape_names: bool = True) → ExpandedState¶ 为给定的参数集返回一个新的
ExpandedState
。对于使用“扩展”或其他延迟渲染参数的查询,此方法将提供最终的 SQL 字符串以及特定参数集将使用的参数。
版本 2.0.0rc1 中的新增功能。
-
method
sqlalchemy.sql.compiler.SQLCompiler.
construct_params(params: _CoreSingleExecuteParams | None = None, extracted_parameters: Sequence[BindParameter[Any]] | None = None, escape_names: bool = True, _group_number: int | None = None, _check: bool = True, _no_postcompile: bool = False) → _MutableCoreSingleExecuteParams¶ 返回绑定参数键和值的字典
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
current_executable¶ 返回正在编译的当前“可执行文件”。
这目前是正在编译的
Select
、Insert
、Update
、Delete
、CompoundSelect
对象。具体来说,它被分配给self.stack
元素列表。当编译像上面的语句时,它通常也会被分配给
Compiler
对象的.statement
属性。但是,所有 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” 的格式可能会更改。
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
default_from()¶ 当 SELECT 语句没有 froms 且不附加 FROM 子句时调用。
为 Oracle 提供将
FROM DUAL
添加到字符串输出的机会。
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
delete_extra_from_clause(update_stmt, from_table, extra_froms, from_hints, **kw)¶ 提供一个钩子来覆盖 DELETE..FROM 子句的生成。
这可以用来实现 DELETE..USING 例如。
MySQL 和 MSSQL 覆盖了这个。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
effective_returning¶ INSERT、UPDATE 或 DELETE 的有效“returning”列。
这可能是由编译器动态计算的所谓“隐式返回”列,或基于
self.statement._returning
中存在的那些(使用._all_selected_columns
属性扩展为单个列)即那些使用UpdateBase.returning()
方法明确设置的那些。版本 2.0 中新增。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
escaped_bind_names: util.immutabledict[str, str] = {}¶ 绑定参数名称的延迟转义,在参数字典中查找时必须将其转换为原始名称。
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
get_select_precolumns(select, **kw)¶ 在构建
SELECT
语句时调用,位置位于列列表之前。
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
group_by_clause(select, **kw)¶ 允许方言自定义 GROUP BY 的渲染方式。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
has_out_parameters = False¶ 如果为 True,则存在设置了 isoutparam 标志的 bindparam() 对象。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
implicit_returning: Sequence[ColumnElement[Any]] | None = None¶ 顶层 INSERT 或 UPDATE 语句的“隐式”返回列列表,用于接收新生成的列值。
版本 2.0 中的新增功能:
implicit_returning
替换了以前的returning
集合,该集合不是通用的 RETURNING 集合,实际上它特定于“隐式返回”功能。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
insert_prefetch: Sequence[Column[Any]] = ()¶ 应该在 INSERT 执行之前评估其默认值的列列表
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
insert_single_values_expr¶ 当 INSERT 使用 VALUES 表达式中的单个参数集进行编译时,字符串将分配到这里,它可以用于插入批处理方案以重写 VALUES 表达式。
版本 1.3.8 中的新增功能。
版本 2.0 中的更改: 此集合不再由 SQLAlchemy 的内置方言使用,而是支持目前内部的
_insertmanyvalues
集合,该集合仅由SQLCompiler
使用。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
isupdate: bool = False¶ 类级默认值,可以在实例级设置以定义此 Compiled 实例是否代表 INSERT/UPDATE/DELETE
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
literal_execute_params: FrozenSet[BindParameter[Any]] = frozenset({})¶ 在语句执行时被渲染为文字值的绑定参数对象。
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
order_by_clause(select, **kw)¶ 允许方言自定义 ORDER BY 的渲染方式。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
params¶ 返回嵌入到此编译对象中的绑定参数字典,对于那些存在的参数。
另请参见
如何将 SQL 表达式渲染为字符串,可能包含内联的绑定参数? - 包含用于调试用例的用法示例。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
positiontup: List[str] | None = None¶ 对于使用位置参数样式的编译结构,将是一个字符串序列,指示绑定参数的顺序名称。
这用于按正确顺序呈现绑定参数,并与
Compiled.params
字典结合使用以呈现参数。此序列始终包含参数的未转义名称。
另请参见
如何将 SQL 表达式渲染为字符串,可能包含内联的绑定参数? - 包含用于调试用例的用法示例。
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
post_compile_params: FrozenSet[BindParameter[Any]] = frozenset({})¶ 在语句执行时被渲染为绑定参数占位符的绑定参数对象。
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
postfetch: List[Column[Any]] | None¶ 在 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 类,以指示多表 UPDATE 语句中的 SET 子句是否应使用表名限定列(即仅限 MySQL)
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
returning¶ 向后兼容性;返回 effective_returning 集合。
-
attribute
sqlalchemy.sql.compiler.SQLCompiler.
returning_precedes_values: bool = False¶ 设置为 True 类,以在 VALUES 或 WHERE 子句之前生成 RETURNING 子句(即 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]] = ()¶ 在 UPDATE 执行之前应评估其 onupdate 默认值的列列表。
-
method
sqlalchemy.sql.compiler.SQLCompiler.
update_tables_clause(update_stmt, from_table, extra_froms, **kw)¶ 提供一个钩子来覆盖 UPDATE 语句中的初始表子句。
MySQL 覆盖了这一点。
-
method
sqlalchemy.sql.compiler.SQLCompiler.
visit_override_binds(override_binds, **kw)¶ 使用绑定参数交换后,对 _OverrideBinds 的嵌套元素进行 SQL 编译。
通常不希望编译 _OverrideBinds;它旨在用于当要使用已经缓存的语句时,编译已经完成,并且只需要在执行时交换绑定参数即可。
但是,有一些测试用例会执行此对象,此外,ORM 子查询加载程序已知会将包含此构造的表达式馈送到新查询中(在 #11173 中发现),因此它必须在编译时也做正确的事情。
-
method
- class sqlalchemy.sql.compiler.StrSQLCompiler¶
一个
SQLCompiler
子类,它允许将少量非标准 SQL 特性呈现为字符串值。当 Core 表达式元素被直接字符串化,而不是调用
ClauseElement.compile()
方法时,将调用StrSQLCompiler
。它可以渲染有限的一组非标准 SQL 结构,以帮助进行基本的字符串化。但是,对于更复杂的自定义或特定于方言的 SQL 结构,需要直接使用ClauseElement.compile()
。-
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 方言使用,以便在驱动程序提供的 asyncio 连接/游标 API 之上提供同步风格的 pep-249 外观。
新版 1.4.24 中的新增功能。
-
attribute
sqlalchemy.engine.AdaptedConnection.
driver_connection¶ 驱动程序在连接后返回的连接对象。
-
method
sqlalchemy.engine.AdaptedConnection.
run_async(fn: Callable[[Any], Awaitable[_T]]) → _T¶ 运行给定函数返回的 awaitable,该函数传递了原始 asyncio 驱动程序连接。
这用于在“同步”方法的上下文中(例如连接池事件处理程序)在驱动程序连接上调用仅 awaitable 的方法。
例如
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
flambé! 龙和 炼金术士 图像设计由 Rotem Yaari 创建并慷慨捐赠。
使用 Sphinx 7.2.6 创建。最后生成文档:2024 年 11 月 8 日星期五上午 8:41:19 EST