code: def __init__(
      self,
      constraint: _OnConflictConstraintT = None,
      index_elements: _OnConflictIndexElementsT = None,
      index_where: _OnConflictIndexWhereT = None,
      set_: _OnConflictSetT = None,
      where: _OnConflictWhereT = None,
  ):
      super().__init__(
          constraint=constraint,
          index_elements=index_elements,
          index_where=index_where,
      )
  
      if (
          self.inferred_target_elements is None
          and self.constraint_target is None
      ):
          raise ValueError(
              "Either constraint or index_elements, "
              "but not both, must be specified unless DO NOTHING"
          )
  
      if isinstance(set_, dict):
          if not set_:
              raise ValueError(
                  "set parameter dictionary must not be empty"
              )
      elif isinstance(set_, ColumnCollection):
          set_ = dict(set_)
      else:
          raise ValueError(
              "set parameter must be a non-empty dictionary "
              "or a ColumnCollection such as the `.c.` collection "
              "of a Table object"
          )
      self.update_values_to_set = [
          (coercions.expect(roles.DMLColumnRole, key), value)
          for key, value in set_.items()
      ]
      self.update_whereclause = where
  
imports: from __future__ import annotations
  from typing import Any
  from typing import Optional
  from .None import ext
  from .._typing import _OnConflictConstraintT
  from .._typing import _OnConflictIndexElementsT
  from .._typing import _OnConflictIndexWhereT
  from .._typing import _OnConflictSetT
  from .._typing import _OnConflictWhereT
  from ...None import util
  from ...sql import coercions
  from ...sql import roles
  from ...sql import schema
  from ...sql._typing import _DMLTableArgument
  from ...sql.base import _exclusive_against
  from ...sql.base import _generative
  from ...sql.base import ColumnCollection
  from ...sql.base import ReadOnlyColumnCollection
  from ...sql.dml import Insert
  from ...sql.elements import ClauseElement
  from ...sql.elements import KeyedColumnElement
  from ...sql.expression import alias
  from ...util.typing import Self
label_desc: Use image node_id 1 to create a new OnConflictDoUpdate object from inherited base classes: OnConflictClause with example: obj = OnConflictDoUpdate(constraint, index_elements, index_where, set_, where)