관리-도구
편집 파일: dml.cpython-311.pyc
� �܋fn � �� � d dl mZ ddl mZ ddlmZ ddlmZ ddlmZ ddl mZ ddlm Z dd lmZ d Z G d� de � � Z eed d� � Z G d� de� � Z G d� de� � Z G d� de� � ZdS )� )�ext� )�util)�schema)�_generative)�Insert)� ClauseElement)�alias)�public_factory)r �insertc �n � e Zd ZdZej d� � � Ze dd�� � Ze dd�� � Z dS )r a PostgreSQL-specific implementation of INSERT. Adds methods for PG-specific syntaxes such as ON CONFLICT. The :class:`_postgresql.Insert` object is created using the :func:`sqlalchemy.dialects.postgresql.insert` function. .. versionadded:: 1.1 c �8 � t | j d�� � j S )a� Provide the ``excluded`` namespace for an ON CONFLICT statement PG's ON CONFLICT clause allows reference to the row that would be inserted, known as ``excluded``. This attribute provides all columns in this row to be referenceable. .. seealso:: :ref:`postgresql_insert_on_conflict` - example of how to use :attr:`_expression.Insert.excluded` �excluded)�name)r �table�columns)�selfs �Y/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/dialects/postgresql/dml.pyr zInsert.excluded! s � � �T�Z�j�1�1�1�9�9� Nc �6 � t |||||� � | _ | S )a� Specifies a DO UPDATE SET action for ON CONFLICT clause. Either the ``constraint`` or ``index_elements`` argument is required, but only one of these can be specified. :param constraint: The name of a unique or exclusion constraint on the table, or the constraint object itself if it has a .name attribute. :param index_elements: A sequence consisting of string column names, :class:`_schema.Column` objects, or other column expression objects that will be used to infer a target index. :param index_where: Additional WHERE criterion that can be used to infer a conditional target index. :param set\_: Required argument. A dictionary or other mapping object with column names as keys and expressions or literals as values, specifying the ``SET`` actions to take. If the target :class:`_schema.Column` specifies a ". key" attribute distinct from the column name, that key should be used. .. warning:: This dictionary does **not** take into account Python-specified default UPDATE values or generation functions, e.g. those specified using :paramref:`_schema.Column.onupdate`. These values will not be exercised for an ON CONFLICT style of UPDATE, unless they are manually specified in the :paramref:`.Insert.on_conflict_do_update.set_` dictionary. :param where: Optional argument. If present, can be a literal SQL string or an acceptable expression for a ``WHERE`` clause that restricts the rows affected by ``DO UPDATE SET``. Rows not meeting the ``WHERE`` condition will not be updated (effectively a ``DO NOTHING`` for those rows). .. versionadded:: 1.1 .. seealso:: :ref:`postgresql_insert_on_conflict` )�OnConflictDoUpdate�_post_values_clause)r � constraint�index_elements�index_where�set_�wheres r �on_conflict_do_updatezInsert.on_conflict_do_update1 s) � �t $6����T�5�$ � $ �� � �r c �2 � t |||� � | _ | S )a) Specifies a DO NOTHING action for ON CONFLICT clause. The ``constraint`` and ``index_elements`` arguments are optional, but only one of these can be specified. :param constraint: The name of a unique or exclusion constraint on the table, or the constraint object itself if it has a .name attribute. :param index_elements: A sequence consisting of string column names, :class:`_schema.Column` objects, or other column expression objects that will be used to infer a target index. :param index_where: Additional WHERE criterion that can be used to infer a conditional target index. .. versionadded:: 1.1 .. seealso:: :ref:`postgresql_insert_on_conflict` )�OnConflictDoNothingr �r r r r s r �on_conflict_do_nothingzInsert.on_conflict_do_nothingp s$ � �<