Skip to main content

OnConflictBuilder

Struct OnConflictBuilder 

Source
pub struct OnConflictBuilder<'a, S, T> { /* private fields */ }
Expand description

Intermediate builder for typed ON CONFLICT clause construction (PostgreSQL).

Created by InsertBuilder::on_conflict() or InsertBuilder::on_conflict_on_constraint(). Call do_nothing() or do_update() to complete the clause.

Implementations§

Source§

impl<'a, S, T> OnConflictBuilder<'a, S, T>

Source

pub fn where<E>(self, condition: E) -> Self
where E: Expr<'a, PostgresValue<'a>>, E::SQLType: BooleanLike,

Adds a WHERE clause to the conflict target for partial index matching.

Generates: ON CONFLICT (col) WHERE condition DO ...

Note: WHERE is only meaningful for column-based targets, not for ON CONFLICT ON CONSTRAINT targets.

Source

pub fn do_nothing(self) -> InsertBuilder<'a, S, InsertOnConflictSet, T>

Resolves the conflict by doing nothing (ignoring the conflicting row).

Generates: ON CONFLICT (col1, col2) DO NOTHING

Source

pub fn do_update( self, set: impl ToSQL<'a, PostgresValue<'a>>, ) -> InsertBuilder<'a, S, InsertDoUpdateSet, T>

Resolves the conflict by updating the existing row.

The set parameter accepts any ToSQL value, typically an UpdateModel which generates the SET clause assignments. Use EXCLUDED.column to reference the proposed insert values.

Generates: ON CONFLICT (col1, col2) DO UPDATE SET ...

Chain .r#where(condition) to add a conditional update filter.

Trait Implementations§

Source§

impl<'a, S: Clone, T: Clone> Clone for OnConflictBuilder<'a, S, T>

Source§

fn clone(&self) -> OnConflictBuilder<'a, S, T>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a, S: Debug, T: Debug> Debug for OnConflictBuilder<'a, S, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, S, T> Freeze for OnConflictBuilder<'a, S, T>

§

impl<'a, S, T> !RefUnwindSafe for OnConflictBuilder<'a, S, T>

§

impl<'a, S, T> Send for OnConflictBuilder<'a, S, T>
where S: Send, T: Send,

§

impl<'a, S, T> Sync for OnConflictBuilder<'a, S, T>
where S: Sync, T: Sync,

§

impl<'a, S, T> Unpin for OnConflictBuilder<'a, S, T>
where S: Unpin, T: Unpin,

§

impl<'a, S, T> UnsafeUnpin for OnConflictBuilder<'a, S, T>

§

impl<'a, S, T> !UnwindSafe for OnConflictBuilder<'a, S, T>

Blanket Implementations§

Source§

impl<T> AliasExt for T

Source§

fn alias(self, name: &'static str) -> AliasedExpr<Self>

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<Mk> MarkerAggValidFor<()> for Mk

Source§

impl<Scope> ScopeSatisfies<Nil, ()> for Scope

Source§

impl<T> TypeEq<T> for T