SQLAlchemy 2.0 文档
SQLAlchemy Core
- SQL 语句和表达式 API
- 模式定义语言
- SQL 数据类型对象
- 引擎和连接使用
- Core API 基础知识
- 事件
- 运行时检查 API
- Core 异常
- Core 内部¶
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.delete_limit_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
项目版本
- 上一页: Core 异常
- 下一页: Dialects
- 上级: 首页
- 在此页
- Core 内部
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.delete_limit_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
Core 内部¶
此处列出了一些关键的内部构造。
对象名称 | 描述 |
---|---|
用于支持 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 字符串中渲染 cast 或其他指令。
此方法用于所有 PostgreSQL 方言,包括 asyncpg、pg8000、psycopg、psycopg2。实现此功能的方言可以选择哪些类型的数据类型在 SQL 语句中显式转换,哪些不转换。
当使用 RENDER_CASTS 时,编译器将为每个方言级别类型设置
TypeEngine.render_bind_cast
属性的BindParameter
对象调用SQLCompiler.render_bind_cast()
方法,以渲染字符串表示形式。SQLCompiler.render_bind_cast()
也用于渲染一种 “insertmanyvalues” 查询形式的 cast,当InsertmanyvaluesSentinelOpts.USE_INSERT_FROM_SELECT
和InsertmanyvaluesSentinelOpts.RENDER_SELECT_COL_CASTS
都设置时,其中 cast 应用于中间列,例如 “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 方法。
这仅针对支持此方法且 SQLAlchemy 方言为此方言设置了适当基础设施的 DBAPI 实现。当前方言包括 python-oracledb、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
。这用于需要访问原始
CacheKey
实例的例程,该实例在首次缓存Compiled
实例时生成,通常是为了协调原始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¶ 返回此编译对象的绑定参数。
-
attribute
sqlalchemy.engine.Compiled.
sql_compiler¶ 返回一个能够处理 SQL 表达式的 Compiled 对象。
如果此编译器是其中之一,它可能会直接返回 ‘self’。
-
attribute
sqlalchemy.engine.Compiled.
state: CompilerState¶ 编译器状态的描述
-
attribute
sqlalchemy.engine.Compiled.
statement: ClauseElement | None = None¶ 要编译的语句。
-
attribute
sqlalchemy.engine.Compiled.
string: str = ''¶ statement
的字符串表示形式
-
method
- class sqlalchemy.engine.interfaces.DBAPIConnection¶
表示 PEP 249 数据库连接的协议。
2.0 版本新增。
参见
Connection Objects - 在 PEP 249 中
成员
类签名
class
sqlalchemy.engine.interfaces.DBAPIConnection
(typing_extensions.Protocol
)-
attribute
sqlalchemy.engine.interfaces.DBAPIConnection.
autocommit: bool¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
close() → None¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
commit() → None¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
cursor() → DBAPICursor¶
-
method
sqlalchemy.engine.interfaces.DBAPIConnection.
rollback() → None¶
-
attribute
- class sqlalchemy.engine.interfaces.DBAPICursor¶
表示 PEP 249 数据库游标的协议。
2.0 版本新增。
参见
Cursor Objects - 在 PEP 249 中
成员
arraysize, callproc(), close(), description, execute(), executemany(), fetchall(), fetchmany(), fetchone(), lastrowid, nextset(), rowcount, setinputsizes(), setoutputsize()
类签名
class
sqlalchemy.engine.interfaces.DBAPICursor
(typing_extensions.Protocol
)-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
arraysize: int¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
callproc(procname: str, parameters: Sequence[Any] = Ellipsis) → Any¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
close() → None¶
-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
description¶ Cursor 的 description 属性。
参见
cursor.description - 在 PEP 249 中
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
execute(operation: Any, parameters: Sequence[Any] | Mapping[str, Any] | None = None) → Any¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
executemany(operation: Any, parameters: Sequence[Sequence[Any]] | Sequence[Mapping[str, Any]]) → Any¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
fetchall() → Sequence[Any]¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
fetchmany(size: int = Ellipsis) → Sequence[Any]¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
fetchone() → Any | None¶
-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
lastrowid: int¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
nextset() → bool | None¶
-
attribute
sqlalchemy.engine.interfaces.DBAPICursor.
rowcount¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
setinputsizes(sizes: Sequence[Any]) → None¶
-
method
sqlalchemy.engine.interfaces.DBAPICursor.
setoutputsize(size: Any, column: Any) → None¶
-
attribute
- class sqlalchemy.engine.interfaces.DBAPIType¶
表示 PEP 249 数据库类型的协议。
2.0 版本新增。
参见
Type Objects - 在 PEP 249 中
类签名
class
sqlalchemy.engine.interfaces.DBAPIType
(typing_extensions.Protocol
)
- class 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
-
method
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
对象。
-
attribute
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
的字符串表示形式
-
method
- 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 类字典,映射到特定于 dialect 类的子类。此字典仅为类级别,不能从 dialect 实例本身访问。
-
method
sqlalchemy.engine.default.DefaultDialect.
connect(*cargs, **cparams)¶ 使用此 dialect 的 DBAPI 建立连接。
此方法的默认实现是
def connect(self, *cargs, **cparams): return self.dbapi.connect(*cargs, **cparams)
*cargs, **cparams
参数直接从此 dialect 的Dialect.create_connect_args()
方法生成。对于需要在从 DBAPI 获取新连接时执行程序化的按连接步骤的 dialect,可以使用此方法。
- 参数:
*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 构造(通常是 schema 项)的可选参数说明符集。
要实现,请建立为一系列元组,如下所示
construct_arguments = [ (schema.Index, {"using": False, "where": None, "ops": None}), ]
如果在 PostgreSQL dialect 上建立上述构造,则
Index
构造现在将接受关键字参数postgresql_using
、postgresql_where
和postgresql_ops
。Index
构造函数的任何其他以postgresql_
为前缀的参数都将引发ArgumentError
。不包含
construct_arguments
成员的 dialect 将不参与参数验证系统。对于此类 dialect,所有参与构造函数都接受任何参数名称,在该 dialect 名称前缀的参数命名空间内。此处的理由是为了尚未实现此功能的第三方 dialect 继续以旧方式运行。参见
DialectKWArgs
- 实现使用DefaultDialect.construct_arguments
的基类
-
method
sqlalchemy.engine.default.DefaultDialect.
create_connect_args(url)¶ 构建 DB-API 兼容的连接参数。
给定
URL
对象,返回一个元组,其中包含适合直接发送到 dbapi 的 connect 函数的(*args, **kwargs)
。参数将发送到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)
- 参数:
- 返回:
一个
(*args, **kwargs)
元组,它将被传递给Dialect.connect()
方法。
-
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 使用类方法
Dialect.import_dbapi()
导入 DBAPI 模块。理由是,任何 dialect 模块都可以被导入并用于生成 SQL 语句,而无需安装实际的 DBAPI 驱动程序。只有在使用create_engine()
构造Engine
时,DBAPI 才会被导入;届时,创建过程会将 DBAPI 模块分配给此属性。因此,Dialect 应该实现
Dialect.import_dbapi()
,它将导入必要的模块并返回它,然后在 dialect 代码中引用self.dbapi
以引用 DBAPI 模块内容。在版本 The 中更改:
Dialect.dbapi
属性专门用作每个Dialect
实例对 DBAPI 模块的引用。先前未完全文档化的.Dialect.dbapi()
类方法已被弃用,并由Dialect.import_dbapi()
替换。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
dbapi_exception_translation_map: Mapping[str, str] = {}¶ 继承自
Dialect.dbapi_exception_translation_map
属性,源自Dialect
一个名称字典,其中将包含 pep-249 异常(“IntegrityError”、“OperationalError”等)的名称作为值,并以备用类名称为键,以支持 DBAPI 具有未按引用方式命名的异常类的情况(例如 IntegrityError = MyException)。在绝大多数情况下,此字典为空。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
ddl_compiler¶ 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.do_begin_twophase()
方法,该方法属于Dialect
在给定的连接上开始两阶段事务。
- 参数:
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.do_commit_twophase()
方法,该方法属于Dialect
在给定的连接上提交两阶段事务。
- 参数:
connection¶ – 一个
Connection
。xid¶ – xid
is_prepared¶ – 是否调用了
TwoPhaseTransaction.prepare()
。recover¶ – 是否传递了 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.do_prepare_twophase()
方法,该方法属于Dialect
在给定的连接上准备两阶段事务。
- 参数:
connection¶ – 一个
Connection
。xid¶ – xid
-
method
sqlalchemy.engine.default.DefaultDialect.
do_recover_twophase(connection: Connection) → List[Any]¶ 继承自
Dialect.do_recover_twophase()
方法,该方法属于Dialect
恢复给定连接上未提交的已准备的两阶段事务标识符列表。
- 参数:
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 标志。
-
method
sqlalchemy.engine.default.DefaultDialect.
do_savepoint(connection, name)¶ 使用给定的名称创建一个保存点。
- 参数:
connection¶ – 一个
Connection
。name¶ – 保存点名称。
-
method
sqlalchemy.engine.default.DefaultDialect.
do_set_input_sizes(cursor: DBAPICursor, list_of_tuples: _GenericSetInputSizesType, context: ExecutionContext) → Any¶ 继承自
Dialect.do_set_input_sizes()
方法,该方法属于Dialect
使用适当的参数调用 cursor.setinputsizes() 方法
如果
Dialect.bind_typing
属性设置为BindTyping.SETINPUTSIZES
值,则会调用此钩子。参数数据在元组列表 (paramname, dbtype, sqltype) 中传递,其中paramname
是语句中参数的键,dbtype
是 DBAPI 数据类型,sqltype
是 SQLAlchemy 类型。元组的顺序是正确的参数顺序。1.4 版本新增。
Changed in version 2.0: - 现在通过将
Dialect.bind_typing
设置为BindTyping.SETINPUTSIZES
来启用 setinputsizes 模式。接受use_setinputsizes
参数的方言应适当地设置此值。
-
method
sqlalchemy.engine.default.DefaultDialect.
do_terminate(dbapi_connection)¶ 提供
connection.close()
的实现,该实现尽可能尝试不阻塞,给定一个 DBAPI 连接。在绝大多数情况下,这只是调用 .close(),然而,对于某些 asyncio 方言,可能会调用不同的 API 功能。
当连接正在被回收或已失效时,
Pool
会调用此钩子。New in version 1.4.41.
-
attribute
sqlalchemy.engine.default.DefaultDialect.
driver: str¶ 方言的 DBAPI 的标识名称
-
attribute
sqlalchemy.engine.default.DefaultDialect.
engine_config_types: Mapping[str, Any] = {'echo': <function bool_or_str.<locals>.bool_or_value>, 'echo_pool': <function bool_or_str.<locals>.bool_or_value>, 'future': <function asbool>, 'max_overflow': <function asint>, 'pool_recycle': <function asint>, 'pool_size': <function asint>, 'pool_timeout': <function asint>}¶ 一个字符串键的映射,这些字符串键可以在链接到类型转换函数的引擎配置中。
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
engine_created(engine: Engine) → None¶ 继承自
Dialect.engine_created()
方法,该方法属于Dialect
在返回最终的
Engine
之前调用的便捷钩子。如果方言从
get_dialect_cls()
方法返回了不同的类,则会在两个类上调用该钩子,首先在get_dialect_cls()
方法返回的方言类上调用,然后在调用该方法的类上调用。方言和/或包装器应使用此钩子将特殊事件应用于引擎或其组件。特别是,它允许方言包装类应用方言级事件。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
exclude_set_input_sizes: Set[Any] | None = None¶ DBAPI 类型对象的集合,这些对象应在自动 cursor.setinputsizes() 调用中排除。
仅当 bind_typing 为 BindTyping.SET_INPUT_SIZES 时才使用此项
-
attribute
sqlalchemy.engine.default.DefaultDialect.
execute_sequence_format¶ tuple
的别名
-
attribute
sqlalchemy.engine.default.DefaultDialect.
execution_ctx_cls¶
-
attribute
sqlalchemy.engine.default.DefaultDialect.
favor_returning_over_lastrowid: bool = False¶ 对于同时支持 `lastrowid` 和 `RETURNING` 插入策略的后端,对于简单的单整数主键插入,倾向于使用 `RETURNING`。
`cursor.lastrowid` 在大多数后端上往往性能更高。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
full_returning¶ Deprecated since version 2.0: `full_returning` 已弃用,请使用 `insert_returning`、`update_returning` 和 `delete_returning`
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
get_async_dialect_cls(url: URL) → Type[Dialect]¶ 继承自
Dialect.get_async_dialect_cls()
方法,来自Dialect
给定一个 URL,返回异步引擎将使用的
Dialect
。默认情况下,这是
Dialect.get_dialect_cls()
的别名,并且仅返回 cls。如果方言在同一名称下提供同步和异步版本(如 `psycopg
` 驱动程序),则可以使用它。2.0 版本新增。
-
method
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()
。
-
method
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()
。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_default_isolation_level(dbapi_conn)¶ 给定一个 DBAPI 连接,返回其隔离级别,如果无法检索到隔离级别,则返回默认隔离级别。
子类可以覆盖此方法,以便为无法可靠检索实际隔离级别的数据库提供“回退”隔离级别。
默认情况下,调用
Interfaces.get_isolation_level()
方法,传播引发的任何异常。1.3.22 版本新增。
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
get_dialect_cls(url: URL) → Type[Dialect]¶ 继承自
Dialect.get_dialect_cls()
方法,来自Dialect
给定一个 URL,返回将要使用的
Dialect
。这是一个钩子,允许外部插件通过允许从基于入口点的 URL 加载插件来提供围绕现有方言的功能,然后插件返回要使用的实际方言。
默认情况下,这仅返回 cls。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_dialect_pool_class(url: URL) → Type[Pool]¶ 返回用于给定 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()
方法,来自Dialect
返回关于 `
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()
方法,来自Dialect
返回关于 `
table_name
` 中的索引的信息。给定一个
Connection
,一个字符串 `table_name
` 和一个可选的字符串 `schema
`,返回索引信息,作为与ReflectedIndex
字典对应的字典列表。这是一个内部方言方法。应用程序应使用
Inspector.get_indexes()
。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_isolation_level(dbapi_connection: DBAPIConnection) → Literal['SERIALIZABLE', 'REPEATABLE READ', 'READ COMMITTED', 'READ UNCOMMITTED', 'AUTOCOMMIT']¶ 继承自
Dialect.get_isolation_level()
方法,来自Dialect
给定一个 DBAPI 连接,返回其隔离级别。
当使用
Connection
对象时,可以使用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()
方法,来自Dialect
返回此方言接受的字符串隔离级别名称序列。
可用名称应使用以下约定
使用 UPPERCASE 名称。隔离级别方法将接受小写名称,但这些名称在传递给方言之前会被标准化为 UPPERCASE。
单词之间应使用空格分隔,而不是下划线,例如 `
REPEATABLE READ
`。隔离级别名称在传递给方言之前,下划线将被转换为空格。后端支持的四个标准隔离名称应为 `
READ UNCOMMITTED
`、`READ COMMITTED
`、`REPEATABLE READ
`、`SERIALIZABLE
`如果方言支持自动提交选项,则应使用隔离级别名称 `
AUTOCOMMIT
` 提供。还可以存在其他隔离模式,前提是它们以 UPPERCASE 命名并使用空格而不是下划线。
此函数用于使默认方言可以检查给定的隔离级别参数是否有效,否则会引发
ArgumentError
。DBAPI 连接被传递给该方法,以防万一方言需要询问连接本身以确定此列表,但预期大多数后端将返回硬编码的值列表。如果方言支持“AUTOCOMMIT”,则该值也应存在于返回的序列中。
默认情况下,该方法引发 `
NotImplementedError
`。如果方言未实现此方法,则默认方言将不会对给定的隔离级别值执行任何检查,然后再将其传递给Dialect.set_isolation_level()
方法。这是为了允许与可能尚未实现此方法的第三方方言向后兼容。2.0 版本新增。
-
method
sqlalchemy.engine.default.DefaultDialect.
get_materialized_view_names(connection: Connection, schema: 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()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_columns(connection, **kw)¶ 返回给定
schema
中所有表中的列信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_columns()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_foreign_keys(connection, **kw)¶ 返回给定
schema
中所有表中的外键信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_foreign_keys()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_indexes(connection, **kw)¶ 返回给定
schema
中所有表中的索引信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_indexes()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_pk_constraint(connection, **kw)¶ 返回给定
schema
中所有表中的主键约束信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_pk_constraint()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_table_comment(connection, **kw)¶ 返回给定
schema
中所有表的表注释信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_table_comment()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_table_options(connection, **kw)¶ 返回在给定 schema 中的表被创建时指定的选项字典。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_table_options()
。注意
DefaultDialect
提供了一个默认实现,该实现将为 `Dialect.get_table_names()
`、`Dialect.get_view_names()
` 或 `Dialect.get_materialized_view_names()
` 返回的每个对象调用单表方法,具体取决于提供的 `kind
`。想要支持更快实现的方言应实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_multi_unique_constraints(connection, **kw)¶ 返回给定
schema
中所有表中的唯一约束信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_unique_constraints()
。注意
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
字典的字典。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_pk_constraint()
。
-
方法
sqlalchemy.engine.default.DefaultDialect.
get_schema_names(connection: Connection, **kw: Any) → List[str]¶ 继承自
Dialect.get_schema_names()
方法,源自Dialect
返回数据库中所有可用的 schema 名称的列表。
这是一个内部 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
返回数据库中所有可用的序列名称的列表。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_sequence_names()
。- 参数:
schema¶ – 要查询的 schema 名称,如果不是默认 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
字典的字典。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_table_comment()
。- 引发:
对于不支持注释的 dialect,引发
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
的表名列表。这是一个内部 dialect 方法。应用程序应使用
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
被创建时指定的选项字典。这是一个内部 dialect 方法。应用程序应使用
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
返回给定连接上的临时表名称列表,如果底层后端支持。
这是一个内部 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
返回给定连接上的临时视图名称列表,如果底层后端支持。
这是一个内部 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
字典。这是一个内部 dialect 方法。应用程序应使用
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
返回普通视图或物化视图的定义。
这是一个内部 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
返回数据库中所有可用的非物化视图名称的列表。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_view_names()
。- 参数:
schema¶ – 要查询的 schema 名称,如果不是默认 schema。
-
方法
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()
方法实现此功能,但是 dialect 可以实现性能更高的版本。这是一个内部 dialect 方法。应用程序应使用
Inspector.has_index()
。1.4 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
has_schema(connection: Connection, schema_name: str, **kw: Any) → bool¶ 检查数据库中特定 schema 名称是否存在。
给定一个
Connection
对象,一个字符串schema_name
,如果存在给定的 schema,则返回True
,否则返回False
。The
DefaultDialect
通过检查schema_name
是否在Dialect.get_schema_names()
返回的模式中来实现此功能,但是方言可以实现更高效的版本。这是一个内部方言方法。应用程序应使用
Inspector.has_schema()
。2.0 版本新增。
-
method
sqlalchemy.engine.default.DefaultDialect.
has_sequence(connection: Connection, sequence_name: str, schema: 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 和可选的 schema 名称,如果给定的表在数据库中存在,则返回 True,否则返回 False。此方法用作面向公众的
Inspector.has_table()
方法的底层实现,并且也在内部用于实现诸如Table.create()
和MetaData.create_all()
等方法的“checkfirst”行为。注意
此方法在 SQLAlchemy 内部使用,并发布以便第三方方言可以提供实现。它**不是**用于检查表是否存在的公共 API。请使用
Inspector.has_table()
方法。Changed in version 2.0:::
Dialect.has_table()
现在正式支持检查其他类似表的对象任何类型的视图(普通视图或物化视图)
任何类型的临时表
以前,这两个检查没有正式指定,不同的方言的行为会有所不同。方言测试套件现在包括针对所有这些对象类型的测试,并且方言应在后备数据库支持视图或临时表的程度上寻求支持定位这些对象,以实现完全合规性。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
has_terminate: bool = False¶ 此方言是否具有单独的“terminate”实现,该实现不会阻止或需要等待。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
identifier_preparer: IdentifierPreparer¶ 一旦构造了
DefaultDialect
,此元素将引用IdentifierPreparer
的实例。
-
classmethod
sqlalchemy.engine.default.DefaultDialect.
import_dbapi() → module¶ 继承自
Dialect.import_dbapi()
方法,该方法属于Dialect
导入此方言使用的 DBAPI 模块。
此处返回的 Python 模块对象将作为实例变量分配给构造的方言,名称为
.dbapi
。Changed in version 2.0:
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 对象,具有完整的功能。
应通过 super() 调用基本方言的 initialize() 方法。
注意
从 SQLAlchemy 1.4 开始,此方法在任何
Dialect.on_connect()
钩子调用**之前**调用。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
inline_comments: bool = False¶ 指示方言是否支持与 Table 或 Column 的定义内联的注释 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 行的排序。
New in version 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 模块。
对于包含设置 provisioning followers 的 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
New in version 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 模式等。
“do_on_connect” 可调用对象通过使用
PoolEvents.connect()
事件钩子调用,然后解包 DBAPI 连接并将其传递到可调用对象中。Changed in version 1.4: 对于方言的第一个连接,不再调用两次 on_connect 钩子。但是,on_connect 钩子仍然在
Dialect.initialize()
方法之前调用。Changed in version 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()
方法,该方法属于Dialect
返回一个可调用对象,该对象设置新创建的 DBAPI 连接。
此方法是一个新的钩子,当方言实现该方法时,它将取代
Dialect.on_connect()
方法。当方言未实现该方法时,它将直接调用Dialect.on_connect()
方法,以保持与现有方言的兼容性。预计不会弃用Dialect.on_connect()
。可调用对象应接受单个参数“conn”,即 DBAPI 连接本身。内部可调用对象没有返回值。
例如:
class MyDialect(default.DefaultDialect): # ... def on_connect_url(self, url): def do_on_connect(connection): connection.execute("SET SPECIAL FLAGS etc") return do_on_connect
这用于设置方言范围的每个连接选项,例如隔离模式、Unicode 模式等。
此方法与
Dialect.on_connect()
的不同之处在于,它传递了与连接参数相关的URL
对象。通常,获取此对象的唯一方法是从Dialect.on_connect()
钩子中查看Engine
本身,但是此 URL 对象可能已被插件替换。注意
Dialect.on_connect_url()
的默认实现是调用Dialect.on_connect()
方法。因此,如果方言实现了此方法,则除非覆盖方言在此处直接调用Dialect.on_connect()
方法,否则**将不会调用**Dialect.on_connect()
方法。New in version 1.4.3: 添加了
Dialect.on_connect_url()
,它通常调用Dialect.on_connect()
。- 参数:
url¶ – 一个
URL
对象,表示传递给Dialect.create_connect_args()
方法的URL
。- 返回:
接受单个 DBAPI 连接作为参数的可调用对象,或 None。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
paramstyle: str¶ 要使用的 paramstyle(某些 DB-API 支持多种 paramstyle)。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
positional: bool¶ 如果此 Dialect 的 paramstyle 是 positional,则为 True。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
preexecute_autoincrement_sequences: bool = False¶ 如果未使用 RETURNING,则是否必须单独执行“隐式”主键函数才能获取其值,则为 True。
当前,这面向 PostgreSQL,当
Table
对象上使用implicit_returning=False
参数时。
-
attribute
sqlalchemy.engine.default.DefaultDialect.
preparer¶
-
attribute
sqlalchemy.engine.default.DefaultDialect.
reflection_options: Sequence[str] = ()¶ 继承自
Dialect.reflection_options
属性,该属性属于Dialect
字符串名称的序列,指示可以在
Table
对象上建立的关键字参数,这些参数在使用Table.autoload_with
时将作为“reflection options”传递。当前的示例是 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
隔离级别
-
属性
sqlalchemy.engine.default.DefaultDialect.
returns_native_bytes: bool = False¶ 指示驱动程序是否为 SQL “binary” 数据类型原生返回 Python bytes() 对象。
2.0.11 版本新增。
-
属性
sqlalchemy.engine.default.DefaultDialect.
sequences_optional: bool = False¶ 如果为 True,则表示
Sequence.optional
参数在Sequence
构造上是否应发出信号,以不生成 CREATE SEQUENCE。仅适用于支持序列的方言。目前仅用于允许在为其他后端指定 Sequence() 的列上使用 PostgreSQL SERIAL。
-
属性
sqlalchemy.engine.default.DefaultDialect.
server_side_cursors: bool = False¶ 已弃用;指示方言是否应默认尝试使用服务器端游标
-
属性
sqlalchemy.engine.default.DefaultDialect.
server_version_info: Tuple[Any, ...] | None = None¶ 一个元组,包含正在使用的数据库后端的版本号。
此值仅适用于支持的方言,并且通常在初始连接到数据库期间填充。
-
方法
sqlalchemy.engine.default.DefaultDialect.
set_connection_execution_options(connection: Connection, opts: Mapping[str, Any]) → None¶ 为给定的连接建立执行选项。
这是由
DefaultDialect
实现的,目的是实现Connection.execution_options.isolation_level
执行选项。方言可以拦截各种执行选项,这些选项可能需要修改特定 DBAPI 连接上的状态。1.4 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
set_engine_execution_options(engine: Engine, opts: Mapping[str, Any]) → None¶ 为给定的引擎建立执行选项。
这是由
DefaultDialect
实现的,目的是为给定的Engine
创建的新Connection
实例建立事件钩子,然后将为该连接调用Dialect.set_connection_execution_options()
方法。
-
方法
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
隔离级别
-
属性
sqlalchemy.engine.default.DefaultDialect.
statement_compiler¶ SQLCompiler
的别名
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_alter: bool = True¶ 如果数据库支持
ALTER TABLE
则为True
- 仅在某些情况下用于生成外键约束
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_comments: bool = False¶ 指示方言是否支持表和列的注释 DDL。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_constraint_comments: bool = False¶ 指示方言是否支持约束的注释 DDL。
2.0 版本新增。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_default_metavalue: bool = False¶ 方言支持 INSERT… VALUES (DEFAULT) 语法
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_default_values: bool = False¶ 方言支持 INSERT… DEFAULT VALUES 语法
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_empty_insert: bool = True¶ 方言支持 INSERT () VALUES ()
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_identity_columns: bool = False¶ 目标数据库支持 IDENTITY
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_multivalues_insert: bool = False¶ 目标数据库支持带有多个值集的 INSERT…VALUES,即 INSERT INTO table (cols) VALUES (…), (…), (…), …
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_native_boolean: bool = False¶ 指示方言是否支持原生布尔构造。这将阻止
Boolean
在使用该类型时生成 CHECK 约束。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_native_decimal: bool = False¶ 指示是否处理和返回 Decimal 对象以用于精确数值类型,或者是否返回浮点数
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_native_enum: bool = False¶ 指示方言是否支持原生 ENUM 构造。这将阻止
Enum
在“原生”模式下使用该类型时生成 CHECK 约束。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_native_uuid: bool = False¶ 指示驱动程序是否为 SQL UUID 数据类型原生处理 Python UUID() 对象。
2.0 版本新增。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_sane_multi_rowcount: bool = True¶ 指示当通过 executemany 执行时,方言是否正确地为
UPDATE
和DELETE
语句实现了 rowcount。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_sane_rowcount: bool = True¶ 指示方言是否正确地为
UPDATE
和DELETE
语句实现了 rowcount。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_sane_rowcount_returning¶ 如果即使在使用 RETURNING 的情况下,此方言也支持合理的 rowcount,则为 True。
对于不支持 RETURNING 的方言,这与
supports_sane_rowcount
同义。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_sequences: bool = False¶ 指示方言是否支持 CREATE SEQUENCE 或类似语法。
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_server_side_cursors: bool = False¶ 指示方言是否支持服务器端游标
-
属性
sqlalchemy.engine.default.DefaultDialect.
supports_simple_order_by_label: bool = True¶ 目标数据库支持 ORDER BY <labelname>,其中 <labelname> 指的是 SELECT 的 columns 子句中的标签
-
属性
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¶ 用于编译 SQL 类型对象的
Compiled
类的实例2.0 版本新增。
-
方法
sqlalchemy.engine.default.DefaultDialect.
type_descriptor(typeobj)¶ 给定来自 types 模块的通用对象,提供一个特定于数据库的
TypeEngine
对象。此方法查找名为
colspecs
的字典作为类级别或实例级别的变量,并传递给adapt_type()
。
-
属性
sqlalchemy.engine.default.DefaultDialect.
update_executemany_returning: bool = False¶ 方言支持带有 executemany 的 UPDATE..RETURNING。
-
属性
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
执行,该执行允许通过重写单行 INSERT 语句以具有多个 VALUES 子句,并为一系列批次多次执行该语句(当给出大量行时),来实现使用 RETURNING 插入多行。对于默认方言,此参数为 False,对于 SQLAlchemy 内部方言 SQLite、MySQL/MariaDB、PostgreSQL、SQL Server,此参数设置为 True。对于 Oracle Database,此参数仍为 False,Oracle Database 提供了原生的 “executemany with RETURNING” 支持,并且也不支持
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 查询生成、执行、结果集处理或任何其他在数据库之间有所不同的方面都定义在 Dialect 的通用类别下。Dialect 充当其他特定于数据库的对象实现的工厂,包括 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
类签名
class
sqlalchemy.engine.Dialect
(sqlalchemy.event.registry.EventTarget
)-
attribute
sqlalchemy.engine.Dialect.
bind_typing = 1¶ 定义一种将类型信息传递到数据库和/或驱动程序以用于绑定参数的方法。
有关值,请参阅
BindTyping
。2.0 版本新增。
-
attribute
sqlalchemy.engine.Dialect.
colspecs: MutableMapping[Type[TypeEngine[Any]], Type[TypeEngine[Any]]]¶ sqlalchemy.types 中的 TypeEngine 类字典,映射到特定于 dialect 类的子类。此字典仅为类级别,不能从 dialect 实例本身访问。
-
method
sqlalchemy.engine.Dialect.
connect(*cargs: Any, **cparams: Any) → DBAPIConnection¶ 使用此 dialect 的 DBAPI 建立连接。
此方法的默认实现是
def connect(self, *cargs, **cparams): return self.dbapi.connect(*cargs, **cparams)
*cargs, **cparams
参数直接从此 dialect 的Dialect.create_connect_args()
方法生成。对于需要在从 DBAPI 获取新连接时执行程序化的按连接步骤的 dialect,可以使用此方法。
- 参数:
*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 构造(通常是 schema 项)的可选参数说明符集。
要实现,请建立为一系列元组,如下所示
construct_arguments = [ (schema.Index, {"using": False, "where": None, "ops": None}), ]
如果在 PostgreSQL dialect 上建立上述构造,则
Index
构造现在将接受关键字参数postgresql_using
、postgresql_where
和postgresql_ops
。Index
构造函数的任何其他以postgresql_
为前缀的参数都将引发ArgumentError
。不包含
construct_arguments
成员的 dialect 将不参与参数验证系统。对于此类 dialect,所有参与构造函数都接受任何参数名称,在该 dialect 名称前缀的参数命名空间内。此处的理由是为了尚未实现此功能的第三方 dialect 继续以旧方式运行。参见
DialectKWArgs
- 实现使用DefaultDialect.construct_arguments
的基类
-
method
sqlalchemy.engine.Dialect.
create_connect_args(url: URL) → ConnectArgsType¶ 构建 DB-API 兼容的连接参数。
给定
URL
对象,返回一个元组,其中包含适合直接发送到 dbapi 的 connect 函数的(*args, **kwargs)
。参数将发送到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)
- 参数:
- 返回:
一个
(*args, **kwargs)
元组,它将被传递给Dialect.connect()
方法。
-
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 使用类方法
Dialect.import_dbapi()
导入 DBAPI 模块。理由是,任何 dialect 模块都可以被导入并用于生成 SQL 语句,而无需安装实际的 DBAPI 驱动程序。只有在使用create_engine()
构造Engine
时,DBAPI 才会被导入;届时,创建过程会将 DBAPI 模块分配给此属性。因此,Dialect 应该实现
Dialect.import_dbapi()
,它将导入必要的模块并返回它,然后在 dialect 代码中引用self.dbapi
以引用 DBAPI 模块内容。在版本 The 中更改:
Dialect.dbapi
属性专门用作每个Dialect
实例对 DBAPI 模块的引用。先前未完全文档化的.Dialect.dbapi()
类方法已被弃用,并由Dialect.import_dbapi()
替换。
-
attribute
sqlalchemy.engine.Dialect.
dbapi_exception_translation_map: Mapping[str, str] = {}¶ 一个名称字典,其中将包含 pep-249 异常(“IntegrityError”、“OperationalError”等)的名称作为值,并以备用类名称为键,以支持 DBAPI 具有未按引用方式命名的异常类的情况(例如 IntegrityError = MyException)。在绝大多数情况下,此字典为空。
-
attribute
sqlalchemy.engine.Dialect.
ddl_compiler: Type[DDLCompiler]¶ 用于编译 DDL 语句的
Compiled
类
-
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 版本新增。
Changed in version 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
会调用此钩子。New in version 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]]]¶ 根据 cursor.execute() 接受的第二个参数的类型(它们各不相同),是 ‘tuple’ 或 ‘list’ 类型。
-
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.0 版本新增。
-
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 类
-
method
sqlalchemy.engine.Dialect.
get_driver_connection(connection: DBAPIConnection) → Any¶ 返回外部驱动程序包返回的连接对象。
对于使用符合 DBAPI 驱动程序的普通方言,此调用将仅返回作为参数传递的 `
connection
`。对于相反地适配非 DBAPI 兼容驱动程序的方言,例如在适配 asyncio 驱动程序时,此调用将返回驱动程序返回的类连接对象。1.4.24 版本新增。
-
method
sqlalchemy.engine.Dialect.
get_foreign_keys(connection: Connection, table_name: str, schema: 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']]¶ 返回此方言接受的字符串隔离级别名称序列。
可用名称应使用以下约定
使用 UPPERCASE 名称。隔离级别方法将接受小写名称,但这些名称在传递给方言之前会被标准化为 UPPERCASE。
单词之间应使用空格分隔,而不是下划线,例如 `
REPEATABLE READ
`。隔离级别名称在传递给方言之前,下划线将被转换为空格。后端支持的四个标准隔离名称应为 `
READ UNCOMMITTED
`、`READ COMMITTED
`、`REPEATABLE READ
`、`SERIALIZABLE
`如果方言支持自动提交选项,则应使用隔离级别名称 `
AUTOCOMMIT
` 提供。还可以存在其他隔离模式,前提是它们以 UPPERCASE 命名并使用空格而不是下划线。
此函数用于使默认方言可以检查给定的隔离级别参数是否有效,否则会引发
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
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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
中所有表中的列信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_columns()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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
中所有表中的外键信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_foreign_keys()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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
中所有表中的索引信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_indexes()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
sqlalchemy.engine.Dialect.
get_multi_pk_constraint(connection: Connection, *, schema: str | None = None, filter_names: Collection[str] | None = None, **kw: Any) → Iterable[Tuple[TableKey, ReflectedPrimaryKeyConstraint]]¶ 返回给定
schema
中所有表中的主键约束信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_pk_constraint()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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
中所有表的表注释信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_table_comment()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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]]]¶ 返回在给定 schema 中的表被创建时指定的选项字典。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_table_options()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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
中所有表中的唯一约束信息。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_multi_unique_constraints()
。注意
DefaultDialect
提供了一个默认实现,它将为Dialect.get_table_names()
、Dialect.get_view_names()
或Dialect.get_materialized_view_names()
返回的每个对象调用单表方法,具体取决于提供的kind
。希望支持更快实现的 Dialect 应该实现此方法。2.0 版本新增。
-
方法
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
字典的字典。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_pk_constraint()
。
-
方法
sqlalchemy.engine.Dialect.
get_schema_names(connection: Connection, **kw: Any) → List[str]¶ 返回数据库中所有可用的 schema 名称的列表。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_schema_names()
。
-
方法
sqlalchemy.engine.Dialect.
get_sequence_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回数据库中所有可用的序列名称的列表。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_sequence_names()
。- 参数:
schema¶ – 要查询的模式名称,如果不是默认模式。
1.4 版本新增。
-
方法
sqlalchemy.engine.Dialect.
get_table_comment(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → ReflectedTableComment¶ 返回由
table_name
标识的表的“注释”。给定一个字符串
table_name
和一个可选的字符串schema
,返回表注释信息,其为一个对应于ReflectedTableComment
字典的字典。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_table_comment()
。- 引发:
对于不支持注释的 dialect,引发
NotImplementedError
。
1.2 版本新增。
-
方法
sqlalchemy.engine.Dialect.
get_table_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回
schema
的表名列表。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_table_names()
。
-
方法
sqlalchemy.engine.Dialect.
get_table_options(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → Dict[str, Any]¶ 返回当
table_name
被创建时指定的选项字典。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_table_options()
。
-
方法
sqlalchemy.engine.Dialect.
get_temp_table_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回给定连接上的临时表名称列表,如果底层后端支持。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_temp_table_names()
。
-
方法
sqlalchemy.engine.Dialect.
get_temp_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回给定连接上的临时视图名称列表,如果底层后端支持。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_temp_view_names()
。
-
方法
sqlalchemy.engine.Dialect.
get_unique_constraints(connection: Connection, table_name: str, schema: str | None = None, **kw: Any) → List[返回关于
table_name
中的唯一约束信息。给定一个字符串
table_name
和一个可选的字符串schema
,返回唯一约束信息,其为一个字典列表,对应于ReflectedUniqueConstraint
字典。这是一个内部 dialect 方法。应用程序应使用
Inspector.get_unique_constraints()
。
-
方法
sqlalchemy.engine.Dialect.
get_view_definition(connection: Connection, view_name: str, schema: str | None = None, **kw: Any) → str¶ 返回普通视图或物化视图的定义。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_view_definition()
。给定一个
Connection
,一个字符串view_name
,以及一个可选的字符串schema
,返回视图定义。
-
方法
sqlalchemy.engine.Dialect.
get_view_names(connection: Connection, schema: str | None = None, **kw: Any) → List[str]¶ 返回数据库中所有可用的非物化视图名称的列表。
这是一个内部 dialect 方法。应用程序应使用
Inspector.get_view_names()
。- 参数:
schema¶ – 要查询的模式名称,如果不是默认模式。
-
方法
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()
方法实现此功能,但是 dialect 可以实现性能更高的版本。这是一个内部 dialect 方法。应用程序应使用
Inspector.has_index()
。1.4 版本新增。
-
方法
sqlalchemy.engine.Dialect.
has_schema(connection: Connection, schema_name: str, **kw: Any) → bool¶ 检查数据库中特定 schema 名称是否存在。
给定一个
Connection
对象,一个字符串schema_name
,如果存在给定的 schema,则返回True
,否则返回False
。The
DefaultDialect
通过检查schema_name
是否在Dialect.get_schema_names()
返回的模式中来实现此功能,但是方言可以实现更高效的版本。这是一个内部方言方法。应用程序应使用
Inspector.has_schema()
。2.0 版本新增。
-
方法
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 和可选的 schema 名称,如果给定的表在数据库中存在,则返回 True,否则返回 False。此方法用作面向公众的
Inspector.has_table()
方法的底层实现,并且也在内部用于实现诸如Table.create()
和MetaData.create_all()
等方法的“checkfirst”行为。注意
此方法在 SQLAlchemy 内部使用,并发布以便第三方方言可以提供实现。它**不是**用于检查表是否存在的公共 API。请使用
Inspector.has_table()
方法。Changed in version 2.0:::
Dialect.has_table()
现在正式支持检查其他类似表的对象任何类型的视图(普通视图或物化视图)
任何类型的临时表
以前,这两个检查没有正式指定,不同的方言的行为会有所不同。方言测试套件现在包括针对所有这些对象类型的测试,并且方言应在后备数据库支持视图或临时表的程度上寻求支持定位这些对象,以实现完全合规性。
-
attribute
sqlalchemy.engine.Dialect.
has_terminate: bool¶ 此方言是否具有单独的“terminate”实现,该实现不会阻止或需要等待。
-
attribute
sqlalchemy.engine.Dialect.
identifier_preparer: IdentifierPreparer¶ 一旦构造了
DefaultDialect
,此元素将引用IdentifierPreparer
的实例。
-
classmethod
sqlalchemy.engine.Dialect.
import_dbapi() → module¶ 导入此方言使用的 DBAPI 模块。
此处返回的 Python 模块对象将作为实例变量分配给构造的方言,名称为
.dbapi
。Changed in version 2.0:
Dialect.import_dbapi()
类方法从以前的方法.Dialect.dbapi()
重命名而来,后者将在方言实例化时被 DBAPI 模块本身替换,因此以两种不同的方式使用相同的名称。如果第三方方言上存在.Dialect.dbapi()
类方法,则将使用它,并且将发出弃用警告。
-
attribute
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 对象,具有完整的功能。
应通过 super() 调用基本方言的 initialize() 方法。
注意
从 SQLAlchemy 1.4 开始,此方法在任何
Dialect.on_connect()
钩子调用**之前**调用。
-
attribute
sqlalchemy.engine.Dialect.
inline_comments: bool¶ 指示方言是否支持与 Table 或 Column 的定义内联的注释 DDL。如果为 False,则表示必须使用 ALTER 来设置表和列注释。
-
attribute
sqlalchemy.engine.Dialect.
insert_executemany_returning: bool¶ 当使用 dialect.do_executemany() 时,方言/驱动程序/数据库是否支持提供 INSERT…RETURNING 支持的某种方式。
-
attribute
sqlalchemy.engine.Dialect.
insert_executemany_returning_sort_by_parameter_order: bool¶ 当使用 dialect.do_executemany() 以及设置了
Insert.returning.sort_by_parameter_order
参数时,方言/驱动程序/数据库是否支持提供 INSERT…RETURNING 支持的某种方式。
-
attribute
sqlalchemy.engine.Dialect.
insert_returning: bool¶ 如果方言支持 INSERT 的 RETURNING
2.0 版本新增。
-
attribute
sqlalchemy.engine.Dialect.
insertmanyvalues_implicit_sentinel: InsertmanyvaluesSentinelOpts¶ 指示数据库是否支持批量 INSERT 形式的选项,其中自增整数主键可以可靠地用作 INSERT 行的排序。
New in version 2.0.10.
-
attribute
sqlalchemy.engine.Dialect.
insertmanyvalues_max_parameters: int¶ insertmanyvalues_page_size 的替代方案,还将根据语句中的参数总数限制页面大小。
-
attribute
sqlalchemy.engine.Dialect.
insertmanyvalues_page_size: int¶ 对于
ExecuteStyle.INSERTMANYVALUES
执行,要渲染到单个 INSERT..VALUES() 语句中的行数。默认方言将此值默认为 1000。
2.0 版本新增。
参见
Connection.execution_options.insertmanyvalues_page_size
- 在Connection
、语句上可用的执行选项
-
attribute
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
-
attribute
sqlalchemy.engine.Dialect.
label_length: int | None¶ SQL 标签的可选用户定义的最大长度
-
classmethod
sqlalchemy.engine.Dialect.
load_provisioning() → None¶ 为此方言设置 provision.py 模块。
对于包含设置 provisioning followers 的 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
New in version 1.3.14.
-
attribute
sqlalchemy.engine.Dialect.
loaded_dbapi¶ same as .dbapi, but is never None; will raise an error if no DBAPI was set up.
2.0 版本新增。
-
attribute
sqlalchemy.engine.Dialect.
max_identifier_length: int¶ 标识符名称的最大长度。
-
attribute
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 模式等。
“do_on_connect” 可调用对象通过使用
PoolEvents.connect()
事件钩子调用,然后解包 DBAPI 连接并将其传递到可调用对象中。Changed in version 1.4: 对于方言的第一个连接,不再调用两次 on_connect 钩子。但是,on_connect 钩子仍然在
Dialect.initialize()
方法之前调用。Changed in version 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()
方法,否则**将不会调用**Dialect.on_connect()
方法。New in version 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¶ 要使用的 paramstyle(某些 DB-API 支持多种 paramstyle)。
-
attribute
sqlalchemy.engine.Dialect.
positional: bool¶ 如果此 Dialect 的 paramstyle 是 positional,则为 True。
-
attribute
sqlalchemy.engine.Dialect.
preexecute_autoincrement_sequences: bool¶ 如果未使用 RETURNING,则是否必须单独执行“隐式”主键函数才能获取其值,则为 True。
当前,这面向 PostgreSQL,当
Table
对象上使用implicit_returning=False
参数时。
-
attribute
sqlalchemy.engine.Dialect.
preparer: Type[IdentifierPreparer]¶ a
IdentifierPreparer
class used to quote identifiers.
-
attribute
sqlalchemy.engine.Dialect.
reflection_options: Sequence[str] = ()¶ 字符串名称的序列,指示可以在
Table
对象上建立的关键字参数,这些参数在使用Table.autoload_with
时将作为“reflection options”传递。当前的示例是 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 “binary” 数据类型原生返回 Python bytes() 对象。
2.0.11 版本新增。
-
attribute
sqlalchemy.engine.Dialect.
sequences_optional: bool¶ 如果为 True,则表示
Sequence.optional
参数在Sequence
构造上是否应发出信号,以不生成 CREATE SEQUENCE。仅适用于支持序列的方言。目前仅用于允许在为其他后端指定 Sequence() 的列上使用 PostgreSQL SERIAL。
-
attribute
sqlalchemy.engine.Dialect.
server_side_cursors: bool¶ 已弃用;指示方言是否应默认尝试使用服务器端游标
-
attribute
sqlalchemy.engine.Dialect.
server_version_info: Tuple[Any, ...] | None¶ 一个元组,包含正在使用的数据库后端的版本号。
此值仅适用于支持的方言,并且通常在初始连接到数据库期间填充。
-
方法
sqlalchemy.engine.Dialect.
set_connection_execution_options(connection: Connection, opts: CoreExecuteOptionsParameter) → None¶ 为给定的连接建立执行选项。
这是由
DefaultDialect
实现的,目的是实现Connection.execution_options.isolation_level
执行选项。方言可以拦截各种执行选项,这些选项可能需要修改特定 DBAPI 连接上的状态。1.4 版本新增。
-
方法
sqlalchemy.engine.Dialect.
set_engine_execution_options(engine: Engine, opts: CoreExecuteOptionsParameter) → None¶ 为给定的引擎建立执行选项。
这是由
DefaultDialect
实现的,目的是为给定的Engine
创建的新Connection
实例建立事件钩子,然后将为该连接调用Dialect.set_connection_execution_options()
方法。
-
方法
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
隔离级别
-
属性
sqlalchemy.engine.Dialect.
statement_compiler: Type[SQLCompiler]¶ 用于编译 SQL 语句的
Compiled
类
-
属性
sqlalchemy.engine.Dialect.
supports_alter: bool¶ 如果数据库支持
ALTER TABLE
则为True
- 仅在某些情况下用于生成外键约束
-
属性
sqlalchemy.engine.Dialect.
supports_comments: bool¶ 指示方言是否支持表和列的注释 DDL。
-
属性
sqlalchemy.engine.Dialect.
supports_constraint_comments: bool¶ 指示方言是否支持约束的注释 DDL。
2.0 版本新增。
-
属性
sqlalchemy.engine.Dialect.
supports_default_metavalue: bool¶ 方言支持 INSERT…(col) VALUES (DEFAULT) 语法。
大多数数据库都以某种方式支持此语法,例如 SQLite 使用
VALUES (NULL)
支持它。MS SQL Server 也支持此语法,但是是唯一包含的禁用此功能的方言,因为 MSSQL 不支持 IDENTITY 列的字段,而这通常是我们希望使用此功能的地方。
-
属性
sqlalchemy.engine.Dialect.
supports_default_values: bool¶ 方言支持 INSERT… DEFAULT VALUES 语法
-
属性
sqlalchemy.engine.Dialect.
supports_empty_insert: bool¶ 方言支持 INSERT () VALUES (),即一个没有列的纯 INSERT 语句。
这通常不被支持;“空”插入通常适用于 “INSERT..DEFAULT VALUES” 或 “INSERT … (col) VALUES (DEFAULT)”。
-
属性
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¶ 用于编译 SQL 类型对象的
Compiled
类的实例2.0 版本新增。
-
方法
sqlalchemy.engine.Dialect.
type_descriptor(typeobj: TypeEngine[_T]) → TypeEngine[_T]¶ 将通用类型转换为特定于方言的类型。
方言类通常会使用 types 模块中的
adapt_type()
函数来完成此操作。返回的结果会按方言类进行缓存,因此不能包含任何方言实例状态。
-
属性
sqlalchemy.engine.Dialect.
update_executemany_returning: bool¶ 方言支持带有 executemany 的 UPDATE..RETURNING。
-
属性
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
执行,该执行允许通过重写单行 INSERT 语句以具有多个 VALUES 子句,并为一系列批次多次执行该语句(当给出大量行时),来实现使用 RETURNING 插入多行。对于默认方言,此参数为 False,对于 SQLAlchemy 内部方言 SQLite、MySQL/MariaDB、PostgreSQL、SQL Server,此参数设置为 True。对于 Oracle Database,此参数仍为 False,Oracle Database 提供了原生的 “executemany with RETURNING” 支持,并且也不支持
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 版本新增。
-
attribute
- 类 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
类签名
类
sqlalchemy.engine.default.DefaultExecutionContext
(sqlalchemy.engine.interfaces.ExecutionContext
)-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
compiled: Compiled | None = None¶ 如果传递给构造函数,则为正在执行的 sqlalchemy.engine.base.Compiled 对象
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
connection: Connection¶ Connection 对象,默认值生成器可以自由使用它来执行 SQL。此 Connection 应该引用 root_connection 的相同底层连接/事务资源。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
create_cursor()¶ 从这个 ExecutionContext 的连接生成并返回一个新的游标。
某些方言可能希望更改 connection.cursor() 的行为,例如 postgresql 可能会返回一个 PG “服务器端”游标。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
current_parameters: _CoreSingleExecuteParams | None = None¶ 应用于当前行的参数字典。
此属性仅在用户定义的默认生成函数的上下文中可用,例如 上下文相关的默认函数 中描述的那样。它由一个字典组成,该字典包含要成为 INSERT 或 UPDATE 语句一部分的每个列/值对的条目。字典的键将是每个
Column
的键值,这通常与名称同义。请注意,
DefaultExecutionContext.current_parameters
属性不适用于Insert.values()
方法的“多值”功能。DefaultExecutionContext.get_current_parameters()
方法应为首选。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
cursor: DBAPICursor¶ 从连接中获取的 DB-API 游标
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
dialect: Dialect¶ 创建此 ExecutionContext 的方言。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
engine: Engine¶ Connection 与之关联的引擎
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
execute_style: ExecuteStyle = 0¶ 将用于执行语句的 DBAPI 游标方法的样式。
2.0 版本新增。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
executemany: bool¶ 如果上下文包含多个参数集列表,则为 True。
从历史上看,此属性链接到是否将使用
cursor.execute()
或cursor.executemany()
。它现在也可以表示可能使用 “insertmanyvalues”,这表示一次或多次cursor.execute()
调用。
-
属性
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
的方言不需要考虑此钩子。New in version 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
标志时,将调用此方法。 如果语句本身具有设置了.isoutparam
标志的BindParameter
对象,且这些对象被SQLCompiler.visit_bindparam()
方法使用,则此标志将被设置为 True。 如果数据库方言编译器生成了设置了.isoutparam
标志但未被SQLCompiler.visit_bindparam()
处理的BindParameter
对象,则应显式设置此标志。为每个绑定参数渲染的名称列表会传递给此方法。 然后,此方法应返回与参数对象列表对应的值序列。 与之前的 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()
方法中设置 OUT 参数的做法。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
get_result_processor(type_, colname, coltype)¶ 为游标描述中给定的类型返回一个“结果处理器”。
这有一个默认实现,数据库方言可以覆盖它以进行上下文相关的结果类型处理。
-
方法
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
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
parameters: _DBAPIMultiExecuteParams¶ 传递给 execute() 或 exec_driver_sql() 方法的绑定参数。
这些参数始终存储为参数条目列表。 单元素列表对应于
cursor.execute()
调用,多元素列表对应于cursor.executemany()
,但ExecuteStyle.INSERTMANYVALUES
除外,后者将一次或多次使用cursor.execute()
。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
post_exec()¶ 在编译语句执行后调用。
如果编译语句已传递给此 ExecutionContext,则在此方法完成后,last_insert_ids、last_inserted_params 等数据成员应可用。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
postfetch_cols: util.generic_fn_descriptor[Sequence[Column[Any]] | None]¶ 一个 Column 对象列表,用于表示已触发服务器端默认值或内联 SQL 表达式值的列。 适用于插入和更新。
-
方法
sqlalchemy.engine.default.DefaultExecutionContext.
pre_exec()¶ 在编译语句执行之前调用。
如果编译语句已传递给此 ExecutionContext,则在此语句完成后,必须初始化 statement 和 parameters 数据成员。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
prefetch_cols: util.generic_fn_descriptor[Sequence[Column[Any]] | None]¶ 一个 Column 对象列表,用于表示已触发客户端默认值的列。 适用于插入和更新。
-
属性
sqlalchemy.engine.default.DefaultExecutionContext.
root_connection: Connection¶ 作为此 ExecutionContext 源的 Connection 对象。
-
属性
- 类 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 的消息传递对象,对应于单个执行。
-
属性
sqlalchemy.engine.ExecutionContext.
compiled: Compiled | None¶ 如果传递给构造函数,则为正在执行的 sqlalchemy.engine.base.Compiled 对象
-
属性
sqlalchemy.engine.ExecutionContext.
connection: Connection¶ Connection 对象,默认值生成器可以自由使用它来执行 SQL。此 Connection 应该引用 root_connection 的相同底层连接/事务资源。
-
方法
sqlalchemy.engine.ExecutionContext.
create_cursor() → DBAPICursor¶ 从这个 ExecutionContext 的连接生成并返回一个新的游标。
某些方言可能希望更改 connection.cursor() 的行为,例如 postgresql 可能会返回一个 PG “服务器端”游标。
-
属性
sqlalchemy.engine.ExecutionContext.
cursor: DBAPICursor¶ 从连接中获取的 DB-API 游标
-
属性
sqlalchemy.engine.ExecutionContext.
dialect: Dialect¶ 创建此 ExecutionContext 的方言。
-
属性
sqlalchemy.engine.ExecutionContext.
engine: Engine¶ Connection 与之关联的引擎
-
属性
sqlalchemy.engine.ExecutionContext.
execute_style: ExecuteStyle¶ 将用于执行语句的 DBAPI 游标方法的样式。
2.0 版本新增。
-
属性
sqlalchemy.engine.ExecutionContext.
executemany: bool¶ 如果上下文包含多个参数集列表,则为 True。
从历史上看,此属性链接到是否将使用
cursor.execute()
或cursor.executemany()
。它现在也可以表示可能使用 “insertmanyvalues”,这表示一次或多次cursor.execute()
调用。
-
属性
sqlalchemy.engine.ExecutionContext.
execution_options: _ExecuteOptions¶ 与当前语句执行关联的执行选项
-
方法
sqlalchemy.engine.ExecutionContext.
fetchall_for_returning(cursor: DBAPICursor) → Sequence[Any]¶ 对于 RETURNING 结果,从 DBAPI 游标传递 cursor.fetchall()。
这是一个特定于方言的钩子,用于在调用为 “RETURNING” 语句传递的行时有特殊考虑的方言。默认实现是
cursor.fetchall()
。此钩子目前仅由 insertmanyvalues 功能使用。未设置
use_insertmanyvalues=True
的方言不需要考虑此钩子。New in version 2.0.10.
-
方法
sqlalchemy.engine.ExecutionContext.
fire_sequence(seq: Sequence_SchemaItem, type_: Integer) → int¶ 给定一个
Sequence
,调用它并返回下一个 int 值
-
方法
sqlalchemy.engine.ExecutionContext.
get_out_parameter_values(out_param_names: Sequence[str]) → Sequence[Any]¶ 从游标返回 OUT 参数值序列。
对于支持 OUT 参数的数据库方言,当存在一个设置了
SQLCompiler
对象的SQLCompiler.has_out_parameters
标志时,将调用此方法。 如果语句本身具有设置了.isoutparam
标志的BindParameter
对象,且这些对象被SQLCompiler.visit_bindparam()
方法使用,则此标志将被设置为 True。 如果数据库方言编译器生成了设置了.isoutparam
标志但未被SQLCompiler.visit_bindparam()
处理的BindParameter
对象,则应显式设置此标志。为每个绑定参数渲染的名称列表会传递给此方法。 然后,此方法应返回与参数对象列表对应的值序列。 与之前的 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()
方法中设置 OUT 参数的做法。
-
方法
sqlalchemy.engine.ExecutionContext.
get_rowcount() → int | None¶ 返回 DBAPI
cursor.rowcount
值,或者在某些情况下返回解释后的值。有关详细信息,请参阅
CursorResult.rowcount
。
-
方法
sqlalchemy.engine.ExecutionContext.
handle_dbapi_exception(e: BaseException) → None¶ 接收在执行、结果获取等操作时发生的 DBAPI 异常。
-
属性
sqlalchemy.engine.ExecutionContext.
invoked_statement: Executable | None¶ 最初给定的 Executable 语句对象。
这应该在结构上等同于 compiled.statement,但不一定是同一个对象,因为在缓存场景中,编译后的形式将从缓存中提取。
-
属性
sqlalchemy.engine.ExecutionContext.
isinsert: bool¶ 如果语句是 INSERT,则为 True。
-
属性
sqlalchemy.engine.ExecutionContext.
isupdate: bool¶ 如果语句是 UPDATE,则为 True。
-
方法
sqlalchemy.engine.ExecutionContext.
lastrow_has_defaults() → bool¶ 如果上次 INSERT 或 UPDATE 行包含内联或数据库端默认值,则返回 True。
-
属性
sqlalchemy.engine.ExecutionContext.
no_parameters: bool¶ 如果执行样式不使用参数,则为 True
-
属性
sqlalchemy.engine.ExecutionContext.
parameters: _AnyMultiExecuteParams¶ 传递给 execute() 或 exec_driver_sql() 方法的绑定参数。
这些参数始终存储为参数条目列表。 单元素列表对应于
cursor.execute()
调用,多元素列表对应于cursor.executemany()
,但ExecuteStyle.INSERTMANYVALUES
除外,后者将一次或多次使用cursor.execute()
。
-
方法
sqlalchemy.engine.ExecutionContext.
post_exec() → None¶ 在编译语句执行后调用。
如果编译语句已传递给此 ExecutionContext,则在此方法完成后,last_insert_ids、last_inserted_params 等数据成员应可用。
-
属性
sqlalchemy.engine.ExecutionContext.
postfetch_cols: util.generic_fn_descriptor[Sequence[Column[Any]] | None]¶ 一个 Column 对象列表,用于表示已触发服务器端默认值或内联 SQL 表达式值的列。 适用于插入和更新。
-
方法
sqlalchemy.engine.ExecutionContext.
pre_exec() → None¶ 在编译语句执行之前调用。
如果编译语句已传递给此 ExecutionContext,则在此语句完成后,必须初始化 statement 和 parameters 数据成员。
-
属性
sqlalchemy.engine.ExecutionContext.
prefetch_cols: util.generic_fn_descriptor[Sequence[Column[Any]] | None]¶ 一个 Column 对象列表,用于表示已触发客户端默认值的列。 适用于插入和更新。
-
属性
sqlalchemy.engine.ExecutionContext.
root_connection: Connection¶ 作为此 ExecutionContext 源的 Connection 对象。
-
属性
sqlalchemy.engine.ExecutionContext.
statement: str¶ 要执行的语句的字符串版本。 要么传递给构造函数,要么必须在 pre_exec() 完成时从 sql.Compiled 对象创建。
-
属性
- 类 sqlalchemy.sql.compiler.ExpandedState¶
表示在为语句生成“扩展”和“后编译”绑定参数时要使用的状态。
“展开的”参数是在语句执行时生成的参数,以适应传递的参数数量,最突出的例子是 IN 表达式内部的各个元素。
“后编译”参数是在执行时将 SQL 字面值渲染到 SQL 语句中的参数,而不是作为单独的参数传递给驱动程序。
要创建
ExpandedState
实例,请在任何SQLCompiler
实例上使用SQLCompiler.construct_expanded_state()
方法。成员
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
阻止预先添加模式名称。对于不支持模式的数据库很有用。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_column(column, use_table=False, name=None, table_name=None, use_schema=False, anon_map=None)¶ 准备带引号的列名。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_label_name(name, anon_map=None)¶ 准备带引号的列名。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_schema(name)¶ 准备带引号的模式名称。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_table(table, use_schema=True, name=None)¶ 准备带引号的表名和模式名称。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
format_table_seq(table, use_schema=True)¶ 将表名和模式格式化为元组。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
quote(ident: str, force: Any | None = None) → str¶ 有条件地引用标识符。
如果标识符是保留字、包含需要引号的字符,或者是
quoted_name
的实例(包括设置为True
的quote
),则会引用该标识符。子类可以覆盖此方法,以提供依赖于数据库的标识符名称引用行为。
- 参数:
ident¶ – 字符串标识符
force¶ –
未使用
Deprecated since version 0.9:
IdentifierPreparer.quote.force
参数已弃用,将在未来的版本中移除。此标志对IdentifierPreparer.quote()
方法的行为没有影响;请参考quoted_name
。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
quote_identifier(value: str) → str¶ 引用标识符。
子类应覆盖此方法,以提供依赖于数据库的引用行为。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
quote_schema(schema: str, force: Any | None = None) → str¶ 有条件地引用模式名称。
如果名称是保留字、包含需要引号的字符,或者是
quoted_name
的实例(包括设置为True
的quote
),则会引用该名称。子类可以覆盖此方法,以提供依赖于数据库的模式名称引用行为。
- 参数:
schema¶ – 字符串模式名称
force¶ –
未使用
Deprecated since version 0.9:
IdentifierPreparer.quote_schema.force
参数已弃用,将在未来的版本中移除。此标志对IdentifierPreparer.quote()
方法的行为没有影响;请参考quoted_name
。
-
attribute
sqlalchemy.sql.compiler.IdentifierPreparer.
schema_for_object: _SchemaForObjectCallable = operator.attrgetter('schema')¶ 返回对象的 .schema 属性。
对于默认的 IdentifierPreparer,对象的模式始终是“ .schema” 属性的值。如果 preparer 被替换为具有非空 schema_translate_map 的 preparer,则“ .schema” 属性的值将呈现为一个符号,该符号将在编译后从映射转换为实际的模式名称。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
unformat_identifiers(identifiers)¶ 将类似“schema.table.column”的字符串解包为组件。
-
method
sqlalchemy.sql.compiler.IdentifierPreparer.
validate_sql_phrase(element, reg)¶ 关键字序列过滤器。
用于过滤旨在表示关键字序列(例如“INITIALLY”、“INITIALLY DEFERRED”等)的元素。不应存在特殊字符。
1.3 版本新增。
-
method
- class sqlalchemy.sql.compiler.SQLCompiler¶
Compiled
的默认实现。将
ClauseElement
对象编译为 SQL 字符串。成员
__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(), delete_limit_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 中
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
bindname_escape_characters: ClassVar[Mapping[str, str]] = {' ': '_', '%': 'P', '(': 'A', ')': 'Z', '.': '_', ':': 'C', '[': '_', ']': '_'}¶ 一个映射(例如 dict 或类似物),包含一个字符查找表,该表将字符键入替换字符,这些替换字符将应用于 SQL 语句中使用的所有“绑定名称”,作为“转义”的一种形式;给定的字符在 SQL 语句中呈现时将被完全替换为“替换”字符,并且对传递给诸如
Connection.execute()
等方法的参数字典中使用的传入名称执行类似的转换。这允许在
bindparam()
和其他构造中使用的绑定参数名称可以包含任何任意字符,而无需担心目标数据库完全不允许的字符。第三方方言可以在此处建立自己的字典来替换默认映射,这将确保映射中的特定字符永远不会出现在绑定参数名称中。
字典在类创建时进行评估,因此无法在运行时修改;它必须在首次声明类时就存在于类中。
请注意,对于具有其他绑定参数规则(例如对前导字符的额外限制)的方言,可能需要增强
SQLCompiler.bindparam_string()
方法。 有关示例,请参见 cx_Oracle 编译器。2.0.0rc1 版本中新增。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
binds: Dict[str, BindParameter[Any]]¶ 绑定参数键到 BindParameter 实例的字典。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
bindtemplate: str¶ 基于 paramstyle 渲染绑定参数的模板。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
compilation_bindtemplate: str¶ 编译器在应用位置参数样式之前用于渲染参数的模板
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
construct_expanded_state(params: _CoreSingleExecuteParams | None = None, escape_names: bool = True) → ExpandedState¶ 为给定的参数集返回一个新的
ExpandedState
。对于使用“扩展”或其他延迟渲染参数的查询,此方法将同时提供最终的 SQL 字符串以及将用于特定参数集的参数。
2.0.0rc1 版本中新增。
-
方法
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¶ 返回绑定参数键和值的字典
-
属性
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.
delete_limit_clause(delete_stmt)¶ 为 MySQL 提供一个钩子,以将 LIMIT 添加到 DELETE 中
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
effective_returning¶ INSERT、UPDATE 或 DELETE 的有效“returning”列。
这可以是所谓的“隐式 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 语句的“隐式” returning 列列表,用于接收新生成的列值。
2.0 版本中新增:
implicit_returning
替换了之前的returning
集合,该集合不是通用的 RETURNING 集合,而实际上是特定于“隐式 returning”功能。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
insert_prefetch: Sequence[Column[Any]] = ()¶ 应在 INSERT 发生之前评估默认值的列列表
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
insert_single_values_expr¶ 当使用 VALUES 表达式内的单个参数集编译 INSERT 时,字符串将在此处分配,它可用于插入批处理方案以重写 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({})¶ 在语句执行时呈现为文字值的 bindparameter 对象。
-
方法
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 表达式渲染为字符串,可能带有内联的绑定参数? - 包括用于调试用例的用法示例。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
post_compile_params: FrozenSet[BindParameter[Any]] = frozenset({})¶ 在语句执行时呈现为绑定参数占位符的 bindparameter 对象。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
postfetch: List[Column[Any]] | None¶ 可以在 INSERT 或 UPDATE 之后进行后获取以接收服务器更新的值的列列表
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
postfetch_lastrowid = False¶ 如果为 True,并且这是 insert,则使用 cursor.lastrowid 来填充 result.inserted_primary_key。
-
方法
sqlalchemy.sql.compiler.SQLCompiler.
render_literal_value(value, type_)¶ 将绑定参数的值渲染为带引号的文字值。
这用于语句部分,这些部分不接受目标驱动程序/数据库上的绑定参数。
这应由子类使用 DBAPI 的引用服务来实现。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
render_table_with_column_in_update_from: bool = False¶ 设置为 True 类级别,以指示多表 UPDATE 语句中的 SET 子句应使用表名限定列(即仅限 MySQL)
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
returning¶ 向后兼容性; 返回 effective_returning 集合。
-
属性
sqlalchemy.sql.compiler.SQLCompiler.
returning_precedes_values: bool = False¶ 设置为 True 类级别,以在 VALUES 或 WHERE 子句之前生成 RETURNING 子句(即 MSSQL)
-
属性
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 提供一个钩子,以便向 UPDATE 添加 LIMIT
-
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, from_hints, **kw)¶ 提供一个钩子来覆盖 UPDATE 语句中的初始表子句。
MySQL 覆盖了此项。
-
method
sqlalchemy.sql.compiler.SQLCompiler.
visit_override_binds(override_binds, **kw)¶ SQL 编译 _OverrideBinds 的嵌套元素,并替换 bindparams。
通常不希望编译 _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¶ 运行给定函数返回的可等待对象,该函数被传递原始 asyncio 驱动程序连接。
这用于在“同步”方法的上下文中(例如连接池事件处理程序)调用驱动程序连接上的仅可等待方法。
例如:
engine = create_async_engine(...) @event.listens_for(engine.sync_engine, "connect") def register_custom_types( dbapi_connection, # ... ): dbapi_connection.run_async( lambda connection: connection.set_type_codec( "MyCustomType", encoder, decoder, ... ) )
1.4.30 版本新增。
-
attribute
flambé! 龙和 The Alchemist 图像设计由 Rotem Yaari 创建并慷慨捐赠。
使用 Sphinx 7.2.6 创建。文档最后生成时间:Tue 11 Mar 2025 02:40:17 PM EDT