class ValuesBase(UpdateBase):
Known subclasses: sqlalchemy.sql.expression.Insert
, sqlalchemy.sql.expression.Update
.ValuesBase.values
to
INSERT and UPDATE constructs.Method | __init__ |
Undocumented |
Method | return_defaults |
Make use of a :term:`RETURNING` clause for the purpose of fetching server-side expressions and defaults. |
Method | values |
Specify a fixed VALUES clause for an INSERT statement, or the SET clause for an UPDATE. |
Class Variable | __visit_name__ |
Undocumented |
Class Variable | _multi_values |
Undocumented |
Class Variable | _post_values_clause |
Undocumented |
Class Variable | _preserve_parameter_order |
Undocumented |
Class Variable | _returning |
Undocumented |
Class Variable | _select_names |
Undocumented |
Class Variable | _supports_multi_parameters |
Undocumented |
Class Variable | _values |
Undocumented |
Class Variable | select |
Undocumented |
Instance Variable | _ordered_values |
Undocumented |
Instance Variable | _return_defaults |
Undocumented |
Instance Variable | _return_defaults_columns |
Undocumented |
Instance Variable | table |
Undocumented |
Inherited from UpdateBase
:
Class Method | _constructor_20_deprecations |
Undocumented |
Method | _generate_fromclause_column_proxies |
Undocumented |
Method | _set_bind |
Undocumented |
Method | _validate_dialect_kwargs_deprecated |
Undocumented |
Method | bind |
Return a 'bind' linked to this .UpdateBase or a _schema.Table associated with it. |
Method | params |
Set the parameters for the statement. |
Method | returning |
Add a :term:`RETURNING` or equivalent clause to this statement. |
Method | with_dialect_options |
Add dialect options to this INSERT/UPDATE/DELETE object. |
Method | with_hint |
Add a table hint for a single table to this INSERT/UPDATE/DELETE statement. |
Class Variable | _execution_options |
Undocumented |
Class Variable | is_dml |
Undocumented |
Class Variable | named_with_column |
Undocumented |
Instance Variable | _bind |
Undocumented |
Instance Variable | _hints |
Undocumented |
Property | _all_selected_columns |
A sequence of column expression objects that represents the
"selected" columns of this _expression.ReturnsRows . |
Property | exported_columns |
Return the RETURNING columns as a column collection for this statement. |
Inherited from StatementRole
(via UpdateBase
, DMLRole
):
Class Variable | _propagate_attrs |
Undocumented |
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via UpdateBase
, DMLRole
, StatementRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from HasCTE
(via UpdateBase
):
Method | add_cte |
Add a _sql.CTE to this statement object that will be independently rendered even if not referenced in the statement otherwise. |
Method | cte |
Return a new _expression.CTE , or Common Table Expression instance. |
Class Variable | _has_ctes_traverse_internals |
Undocumented |
Class Variable | _independent_ctes |
Undocumented |
Inherited from ReturnsRowsRole
(via UpdateBase
, HasCTE
, HasCTERole
):
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via UpdateBase
, HasCTE
, HasCTERole
, ReturnsRowsRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from HasCompileState
(via UpdateBase
):
Class Variable | _attributes |
Undocumented |
Class Variable | _compile_state_plugin |
Undocumented |
Inherited from Generative
(via UpdateBase
, HasCompileState
):
Method | _generate |
Undocumented |
Inherited from DialectKWArgs
(via UpdateBase
):
Class Method | argument_for |
Add a new kind of dialect-specific keyword argument for this class. |
Method | _kw_reg_for_dialect_cls |
Undocumented |
Method | _validate_dialect_kwargs |
Undocumented |
Class Variable | _dialect_kwargs_traverse_internals |
Undocumented |
Class Variable | _kw_registry |
Undocumented |
Property | dialect_kwargs |
A collection of keyword arguments specified as dialect-specific options to this construct. |
Property | dialect_options |
A collection of keyword arguments specified as dialect-specific options to this construct. |
Property | kwargs |
A synonym for .DialectKWArgs.dialect_kwargs . |
Inherited from HasPrefixes
(via UpdateBase
):
Method | _setup_prefixes |
Undocumented |
Method | prefix_with |
Add one or more expressions following the statement keyword, i.e. SELECT, INSERT, UPDATE, or DELETE. Generative. |
Class Variable | _has_prefixes_traverse_internals |
Undocumented |
Instance Variable | _prefixes |
Undocumented |
Inherited from ReturnsRows
(via UpdateBase
):
Class Variable | _is_from_clause |
Undocumented |
Class Variable | _is_lateral |
Undocumented |
Class Variable | _is_returns_rows |
Undocumented |
Class Variable | _is_select_statement |
Undocumented |
Property | selectable |
Undocumented |
Inherited from ReturnsRowsRole
(via UpdateBase
, ReturnsRows
):
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via UpdateBase
, ReturnsRows
, ReturnsRowsRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from ClauseElement
(via UpdateBase
, ReturnsRows
):
Method | compare |
Compare this _expression.ClauseElement to the given _expression.ClauseElement . |
Method | compile |
Compile this SQL expression. |
Method | self_group |
Apply a 'grouping' to this _expression.ClauseElement . |
Method | unique_params |
Return a copy with _expression.bindparam elements replaced. |
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | _clone |
Create a shallow copy of this ClauseElement. |
Method | _cloned_set |
Return the set consisting all cloned ancestors of this ClauseElement. |
Method | _compile_w_cache |
Undocumented |
Method | _compiler |
Return a compiler appropriate for this ClauseElement, given a Dialect. |
Method | _execute_on_connection |
Undocumented |
Method | _negate |
Undocumented |
Method | _negate_in_binary |
a hook to allow the right side of a binary expression to respond to a negation of the binary expression. |
Method | _replace_params |
Undocumented |
Method | _set_propagate_attrs |
Undocumented |
Method | _ungroup |
Return this _expression.ClauseElement without any groupings. |
Method | _with_binary_element_type |
in the context of binary expression, convert the type of this object to the one given. |
Class Variable | _cache_key_traversal |
Undocumented |
Class Variable | _from_objects |
Undocumented |
Class Variable | _is_bind_parameter |
Undocumented |
Class Variable | _is_clause_list |
Undocumented |
Class Variable | _is_clone_of |
Undocumented |
Class Variable | _is_from_container |
Undocumented |
Class Variable | _is_immutable |
Undocumented |
Class Variable | _is_lambda_element |
Undocumented |
Class Variable | _is_select_container |
Undocumented |
Class Variable | _is_singleton_constant |
Undocumented |
Class Variable | _is_text_clause |
Undocumented |
Class Variable | _is_textual |
Undocumented |
Class Variable | _order_by_label_element |
Undocumented |
Class Variable | description |
Undocumented |
Class Variable | is_clause_element |
Undocumented |
Class Variable | is_selectable |
Undocumented |
Class Variable | stringify_dialect |
Undocumented |
Class Variable | supports_execution |
Undocumented |
Instance Variable | _propagate_attrs |
like annotations, however these propagate outwards liberally as SQL constructs are built, and are set up at construction time. |
Property | _constructor |
return the 'constructor' for this ClauseElement. |
Property | entity_namespace |
Undocumented |
Inherited from SQLRole
(via UpdateBase
, ReturnsRows
, ClauseElement
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via UpdateBase
, ReturnsRows
, ClauseElement
):
Method | _annotate |
return a copy of this ClauseElement with annotations updated by the given dictionary. |
Method | _deannotate |
return a copy of this _expression.ClauseElement with annotations removed. |
Method | _with_annotations |
return a copy of this ClauseElement with annotations replaced by the given dictionary. |
Inherited from SupportsAnnotations
(via UpdateBase
, ReturnsRows
, ClauseElement
, SupportsWrappingAnnotations
):
Property | _annotations_cache_key |
Undocumented |
Inherited from MemoizedHasCacheKey
(via UpdateBase
, ReturnsRows
, ClauseElement
):
Method | _generate_cache_key |
return a cache key. |
Inherited from HasCacheKey
(via UpdateBase
, ReturnsRows
, ClauseElement
, MemoizedHasCacheKey
):
Class Variable | inherit_cache |
Indicate if this .HasCacheKey instance should make use of the cache key generation scheme used by its immediate superclass. |
Class Method | _generate_cache_attrs |
generate cache key dispatcher for a new class. |
Class Method | _generate_cache_key_for_object |
Undocumented |
Method | _gen_cache_key |
return an optional cache key. |
Class Variable | __slots__ |
Undocumented |
Class Variable | _hierarchy_supports_caching |
private attribute which may be set to False to prevent the inherit_cache warning from being emitted for a hierarchy of subclasses. |
Class Variable | _is_has_cache_key |
Undocumented |
Inherited from HasCopyInternals
(via UpdateBase
, ReturnsRows
, ClauseElement
):
Method | _copy_internals |
Reassign internal elements to be clones of themselves. |
Inherited from Traversible
(via UpdateBase
, ReturnsRows
, ClauseElement
):
Method | get_children |
Return immediate child .visitors.Traversible elements of this .visitors.Traversible . |
Method | __class_getitem__ |
Undocumented |
Inherited from Executable
(via UpdateBase
):
Method | _add_context_option |
Add a context option to this statement. |
Method | _set_compile_options |
Assign the compile options to a new value. |
Method | _update_compile_options |
update the _compile_options with new keys. |
Method | execute |
Compile and execute this .Executable . |
Method | execution_options |
Set non-SQL options for the statement which take effect during execution. |
Method | get_execution_options |
Get the non-SQL options which will take effect during execution. |
Method | options |
Apply options to this statement. |
Method | scalar |
Compile and execute this .Executable , returning the result's scalar representation. |
Class Variable | _executable_traverse_internals |
Undocumented |
Class Variable | _with_context_options |
Undocumented |
Class Variable | _with_options |
Undocumented |
Class Variable | is_delete |
Undocumented |
Class Variable | is_insert |
Undocumented |
Class Variable | is_select |
Undocumented |
Class Variable | is_text |
Undocumented |
Class Variable | is_update |
Undocumented |
Class Variable | supports_execution |
Undocumented |
Instance Variable | _compile_options |
Undocumented |
Property | _effective_plugin_target |
Undocumented |
Inherited from StatementRole
(via UpdateBase
, Executable
):
Class Variable | _propagate_attrs |
Undocumented |
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via UpdateBase
, Executable
, StatementRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from Generative
(via UpdateBase
, Executable
):
Method | _generate |
Undocumented |
Inherited from ClauseElement
(via UpdateBase
):
Method | compare |
Compare this _expression.ClauseElement to the given _expression.ClauseElement . |
Method | compile |
Compile this SQL expression. |
Method | self_group |
Apply a 'grouping' to this _expression.ClauseElement . |
Method | unique_params |
Return a copy with _expression.bindparam elements replaced. |
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | _clone |
Create a shallow copy of this ClauseElement. |
Method | _cloned_set |
Return the set consisting all cloned ancestors of this ClauseElement. |
Method | _compile_w_cache |
Undocumented |
Method | _compiler |
Return a compiler appropriate for this ClauseElement, given a Dialect. |
Method | _execute_on_connection |
Undocumented |
Method | _negate |
Undocumented |
Method | _negate_in_binary |
a hook to allow the right side of a binary expression to respond to a negation of the binary expression. |
Method | _replace_params |
Undocumented |
Method | _set_propagate_attrs |
Undocumented |
Method | _ungroup |
Return this _expression.ClauseElement without any groupings. |
Method | _with_binary_element_type |
in the context of binary expression, convert the type of this object to the one given. |
Class Variable | _cache_key_traversal |
Undocumented |
Class Variable | _from_objects |
Undocumented |
Class Variable | _is_bind_parameter |
Undocumented |
Class Variable | _is_clause_list |
Undocumented |
Class Variable | _is_clone_of |
Undocumented |
Class Variable | _is_from_clause |
Undocumented |
Class Variable | _is_from_container |
Undocumented |
Class Variable | _is_immutable |
Undocumented |
Class Variable | _is_lambda_element |
Undocumented |
Class Variable | _is_returns_rows |
Undocumented |
Class Variable | _is_select_container |
Undocumented |
Class Variable | _is_select_statement |
Undocumented |
Class Variable | _is_singleton_constant |
Undocumented |
Class Variable | _is_text_clause |
Undocumented |
Class Variable | _is_textual |
Undocumented |
Class Variable | _order_by_label_element |
Undocumented |
Class Variable | description |
Undocumented |
Class Variable | is_clause_element |
Undocumented |
Class Variable | is_selectable |
Undocumented |
Class Variable | stringify_dialect |
Undocumented |
Class Variable | supports_execution |
Undocumented |
Instance Variable | _propagate_attrs |
like annotations, however these propagate outwards liberally as SQL constructs are built, and are set up at construction time. |
Property | _constructor |
return the 'constructor' for this ClauseElement. |
Property | entity_namespace |
Undocumented |
Inherited from SQLRole
(via UpdateBase
, ClauseElement
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via UpdateBase
, ClauseElement
):
Method | _annotate |
return a copy of this ClauseElement with annotations updated by the given dictionary. |
Method | _deannotate |
return a copy of this _expression.ClauseElement with annotations removed. |
Method | _with_annotations |
return a copy of this ClauseElement with annotations replaced by the given dictionary. |
Inherited from SupportsAnnotations
(via UpdateBase
, ClauseElement
, SupportsWrappingAnnotations
):
Property | _annotations_cache_key |
Undocumented |
Inherited from MemoizedHasCacheKey
(via UpdateBase
, ClauseElement
):
Method | _generate_cache_key |
return a cache key. |
Inherited from HasCacheKey
(via UpdateBase
, ClauseElement
, MemoizedHasCacheKey
):
Class Variable | inherit_cache |
Indicate if this .HasCacheKey instance should make use of the cache key generation scheme used by its immediate superclass. |
Class Method | _generate_cache_attrs |
generate cache key dispatcher for a new class. |
Class Method | _generate_cache_key_for_object |
Undocumented |
Method | _gen_cache_key |
return an optional cache key. |
Class Variable | __slots__ |
Undocumented |
Class Variable | _hierarchy_supports_caching |
private attribute which may be set to False to prevent the inherit_cache warning from being emitted for a hierarchy of subclasses. |
Class Variable | _is_has_cache_key |
Undocumented |
Inherited from HasCopyInternals
(via UpdateBase
, ClauseElement
):
Method | _copy_internals |
Reassign internal elements to be clones of themselves. |
Inherited from Traversible
(via UpdateBase
, ClauseElement
):
Method | get_children |
Return immediate child .visitors.Traversible elements of this .visitors.Traversible . |
Method | __class_getitem__ |
Undocumented |
sqlalchemy.sql.expression.Insert
, sqlalchemy.sql.expression.Update
Undocumented
Make use of a :term:`RETURNING` clause for the purpose of fetching server-side expressions and defaults.
E.g.:
stmt = table.insert().values(data='newdata').return_defaults() result = connection.execute(stmt) server_created_at = result.returned_defaults['created_at']
When used against a backend that supports RETURNING, all column
values generated by SQL expression or server-side-default will be
added to any existing RETURNING clause, provided that
.UpdateBase.returning
is not used simultaneously. The column
values will then be available on the result using the
_engine.CursorResult.returned_defaults
accessor as
a dictionary,
referring to values keyed to the _schema.Column
object as well as
its .key.
This method differs from .UpdateBase.returning
in these ways:
.ValuesBase.return_defaults
is only intended for use with an
INSERT or an UPDATE statement that matches exactly one row per
parameter set. While the RETURNING construct in the general sense
supports multiple rows for a multi-row UPDATE or DELETE statement,
or for special cases of INSERT that return multiple rows (e.g.
INSERT from SELECT, multi-valued VALUES clause),
.ValuesBase.return_defaults
is intended only for an
"ORM-style" single-row INSERT/UPDATE statement. The row
returned by the statement is also consumed implicitly when
.ValuesBase.return_defaults
is used. By contrast,
.UpdateBase.returning
leaves the RETURNING result-set intact
with a collection of any number of rows.
It is compatible with the existing logic to fetch auto-generated
primary key values, also known as "implicit returning". Backends
that support RETURNING will automatically make use of RETURNING in
order to fetch the value of newly generated primary keys; while the
.UpdateBase.returning
method circumvents this behavior,
.ValuesBase.return_defaults
leaves it intact.
It can be called against any backend. Backends that don't support
RETURNING will skip the usage of the feature, rather than raising
an exception. The return value of
_engine.CursorResult.returned_defaults
will be None
An INSERT statement invoked with executemany() is supported if the
backend database driver supports the
insert_executemany_returning feature, currently this includes
PostgreSQL with psycopg2. When executemany is used, the
_engine.CursorResult.returned_defaults_rows
and
_engine.CursorResult.inserted_primary_key_rows
accessors
will return the inserted defaults and primary keys.
New in version 1.4.
.ValuesBase.return_defaults
is used by the ORM to provide
an efficient implementation for the eager_defaults feature of
.mapper
.
See Also
.UpdateBase.returning
_engine.CursorResult.returned_defaults
_engine.CursorResult.returned_defaults_rows
_engine.CursorResult.inserted_primary_key
_engine.CursorResult.inserted_primary_key_rows
Parameters | |
*cols | optional list of column key names or
_schema.Column
objects. If omitted, all column expressions evaluated on the server
are added to the returning list. |
Specify a fixed VALUES clause for an INSERT statement, or the SET clause for an UPDATE.
Note that the _expression.Insert
and
_expression.Update
constructs support
per-execution time formatting of the VALUES and/or SET clauses,
based on the arguments passed to _engine.Connection.execute
.
However, the .ValuesBase.values
method can be used to "fix" a
particular set of parameters into the statement.
Multiple calls to .ValuesBase.values
will produce a new
construct, each one with the parameter list modified to include
the new parameters sent. In the typical case of a single
dictionary of parameters, the newly passed keys will replace
the same keys in the previous construct. In the case of a list-based
"multiple values" construct, each new list of values is extended
onto the existing list of values.
Parameters | |
*args | As an alternative to passing key/value parameters,
a dictionary, tuple, or list of dictionaries or tuples can be passed
as a single positional argument in order to form the VALUES or
SET clause of the statement. The forms that are accepted vary
based on whether this is an For either an users.insert().values({"name": "some name"}) users.update().values({"name": "some new name"}) Also for either form but more typically for the
users.insert().values((5, "some name")) The users.insert().values([ {"name": "some name"}, {"name": "some other name"}, {"name": "yet another name"}, ]) The above form would render a multiple VALUES statement similar to: INSERT INTO users (name) VALUES (:name_1), (:name_2), (:name_3) It is essential to note that passing multiple values is
NOT the same as using traditional executemany() form. The above
syntax is a special syntax not typically used. To emit an
INSERT statement against multiple rows, the normal method is
to pass a multiple values list to the
|
**kwargs | key value pairs representing the string key
of a users.insert().values(name="some name") users.update().where(users.c.id==5).values(name="some name") |
str
=
sqlalchemy.sql.expression.Insert
, sqlalchemy.sql.expression.Update
Undocumented
tuple
=
sqlalchemy.sql.dml.UpdateBase._returning
sqlalchemy.sql.expression.Insert
, sqlalchemy.sql.expression.Update
Undocumented
bool
=
sqlalchemy.sql.expression.Insert
, sqlalchemy.sql.expression.Update
Undocumented