#[repr(u8)]
pub enum ReferentialAction { Cascade = 1, Restrict = 2, NoAction = 4, SetNull = 8, SetDefault = 16, }
Expand description

An action describing the way referential integrity is managed in the system.

An action is triggered when a relation constraint gets violated in a way that would make the the data inconsistent, e.g. deleting or updating a referencing record that leaves related records into a wrong state.

@relation(fields: [a], references: [b], onDelete: NoAction, onUpdate: Cascade)
                                                  ^^^^^^^^            ^^^^^^^

Variants§

§

Cascade = 1

Deletes record if dependent record is deleted. Updates relation scalar fields if referenced scalar fields of the dependent record are updated.

Prevents operation (both updates and deletes) from succeeding if any records are connected.

§

Restrict = 2

Prevents operation (both updates and deletes) from succeeding if any records are connected. This behavior will always result in a runtime error for required relations.

§

NoAction = 4

Behavior is database specific. Either defers throwing an integrity check error until the end of the transaction or errors immediately. If deferred, this makes it possible to temporarily violate integrity in a transaction while making sure that subsequent operations in the transaction restore integrity.

When using relationMode = “prisma”, NoAction becomes an alias of the emulated Restrict (when supported).

§

SetNull = 8

Sets relation scalar fields to null if the relation is deleted or updated. This will always result in a runtime error if one or more of the relation scalar fields are required.

§

SetDefault = 16

Sets relation scalar fields to their default values on update or delete of relation. Will always result in a runtime error if no defaults are provided for any relation scalar fields.

Implementations§

source§

impl ReferentialAction

source

pub fn triggers_modification(self) -> bool

True if the action modifies the related items.

source

pub fn as_str(self) -> &'static str

The string representation of the referential action in the schema.

source

pub fn documentation(&self) -> &'static str

The documentation string to display in autocompletion / editor hints.

Trait Implementations§

source§

impl AsRef<str> for ReferentialAction

source§

fn as_ref(&self) -> &'static str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl BitAnd for ReferentialAction

§

type Output = BitFlags<ReferentialAction>

The resulting type after applying the & operator.
source§

fn bitand(self, other: Self) -> Self::Output

Performs the & operation. Read more
source§

impl BitFlag for ReferentialAction

source§

fn empty() -> BitFlags<Self>

Create a BitFlags with no flags set (in other words, with a value of 0). Read more
source§

fn all() -> BitFlags<Self>

Create a BitFlags with all flags set. Read more
source§

impl BitOr for ReferentialAction

§

type Output = BitFlags<ReferentialAction>

The resulting type after applying the | operator.
source§

fn bitor(self, other: Self) -> Self::Output

Performs the | operation. Read more
source§

impl BitXor for ReferentialAction

§

type Output = BitFlags<ReferentialAction>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: Self) -> Self::Output

Performs the ^ operation. Read more
source§

impl Clone for ReferentialAction

source§

fn clone(&self) -> ReferentialAction

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for ReferentialAction

source§

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

Formats the value using the given formatter. Read more
source§

impl Display for ReferentialAction

source§

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

Formats the value using the given formatter. Read more
source§

impl Not for ReferentialAction

§

type Output = BitFlags<ReferentialAction>

The resulting type after applying the ! operator.
source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
source§

impl PartialEq for ReferentialAction

source§

fn eq(&self, other: &ReferentialAction) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl RawBitFlags for ReferentialAction

§

type Numeric = u8

The underlying integer type.
source§

const EMPTY: Self::Numeric = {transmute(0x00): <relations::ReferentialAction as enumflags2::_internal::RawBitFlags>::Numeric}

A value with no bits set.
source§

const DEFAULT: Self::Numeric = {transmute(0x00): <relations::ReferentialAction as enumflags2::_internal::RawBitFlags>::Numeric}

The value used by the Default implementation. Equivalent to EMPTY, unless customized.
source§

const ALL_BITS: Self::Numeric = {transmute(0x1f): <relations::ReferentialAction as enumflags2::_internal::RawBitFlags>::Numeric}

A value with all flag bits set.
source§

const BITFLAGS_TYPE_NAME: &'static str = "BitFlags<ReferentialAction>"

The name of the type for debug formatting purposes. Read more
source§

fn bits(self) -> Self::Numeric

Return the bits as a number type.
source§

impl Copy for ReferentialAction

source§

impl StructuralPartialEq for ReferentialAction

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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 Twhere T: Clone,

§

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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.