Struct ColumnDef

Source
pub struct ColumnDef { /* private fields */ }
Expand description

Specification of a table column

Implementations§

Source§

impl ColumnDef

Source

pub fn new<T>(name: T) -> ColumnDef
where T: 'static + Iden,

Construct a table column

Source

pub fn new_with_type<T>(name: T, types: ColumnType) -> ColumnDef
where T: 'static + Iden,

Construct a table column with column type

Source

pub fn not_null(&mut self) -> &mut ColumnDef

Set column not null

Source

pub fn null(&mut self) -> &mut ColumnDef

Set column null

Source

pub fn default<T>(&mut self, value: T) -> &mut ColumnDef
where T: Into<Value>,

Set default value of a column

Source

pub fn auto_increment(&mut self) -> &mut ColumnDef

Set column auto increment

Source

pub fn unique_key(&mut self) -> &mut ColumnDef

Set column unique constraint

Source

pub fn primary_key(&mut self) -> &mut ColumnDef

Set column as primary key

Source

pub fn char_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as char with custom length

Source

pub fn char(&mut self) -> &mut ColumnDef

Set column type as char

Source

pub fn string_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as string with custom length

Source

pub fn string(&mut self) -> &mut ColumnDef

Set column type as string

Source

pub fn text(&mut self) -> &mut ColumnDef

Set column type as text

Source

pub fn tiny_integer_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as tiny_integer with custom length

Source

pub fn tiny_integer(&mut self) -> &mut ColumnDef

Set column type as tiny_integer

Source

pub fn small_integer_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as small_integer with custom length

Source

pub fn small_integer(&mut self) -> &mut ColumnDef

Set column type as small_integer

Source

pub fn integer_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as integer with custom length

Source

pub fn integer(&mut self) -> &mut ColumnDef

Set column type as integer

Source

pub fn big_integer_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as big_integer with custom length

Source

pub fn big_integer(&mut self) -> &mut ColumnDef

Set column type as big_integer

Source

pub fn tiny_unsigned_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as tiny_unsigned with custom length

Source

pub fn tiny_unsigned(&mut self) -> &mut ColumnDef

Set column type as tiny_unsigned

Source

pub fn small_unsigned_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as small_unsigned with custom length

Source

pub fn small_unsigned(&mut self) -> &mut ColumnDef

Set column type as small_unsigned

Source

pub fn unsigned_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as unsigned with custom length

Source

pub fn unsigned(&mut self) -> &mut ColumnDef

Set column type as unsigned

Source

pub fn big_unsigned_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as big_unsigned with custom length

Source

pub fn big_unsigned(&mut self) -> &mut ColumnDef

Set column type as big_unsigned

Source

pub fn float_len(&mut self, precision: u32) -> &mut ColumnDef

Set column type as float with custom precision

Source

pub fn float(&mut self) -> &mut ColumnDef

Set column type as float

Source

pub fn double_len(&mut self, precision: u32) -> &mut ColumnDef

Set column type as double with custom precision

Source

pub fn double(&mut self) -> &mut ColumnDef

Set column type as double

Source

pub fn decimal_len(&mut self, precision: u32, scale: u32) -> &mut ColumnDef

Set column type as decimal with custom precision and scale

Source

pub fn decimal(&mut self) -> &mut ColumnDef

Set column type as decimal

Source

pub fn date_time_len(&mut self, precision: u32) -> &mut ColumnDef

Set column type as date_time with custom precision

Source

pub fn date_time(&mut self) -> &mut ColumnDef

Set column type as date_time

Source

pub fn interval( &mut self, fields: Option<PgInterval>, precision: Option<u32>, ) -> &mut ColumnDef

Set column type as interval type with optional fields and precision. Postgres only

use sea_query::{tests_cfg::*, *};
assert_eq!(
    Table::create()
        .table(Glyph::Table)
        .col(
            ColumnDef::new(Alias::new("I1"))
                .interval(None, None)
                .not_null()
        )
        .col(
            ColumnDef::new(Alias::new("I2"))
                .interval(Some(PgInterval::YearToMonth), None)
                .not_null()
        )
        .col(
            ColumnDef::new(Alias::new("I3"))
                .interval(None, Some(42))
                .not_null()
        )
        .col(
            ColumnDef::new(Alias::new("I4"))
                .interval(Some(PgInterval::Hour), Some(43))
                .not_null()
        )
        .to_string(PostgresQueryBuilder),
    vec![
        r#"CREATE TABLE "glyph" ("#,
        r#""I1" interval NOT NULL,"#,
        r#""I2" interval YEAR TO MONTH NOT NULL,"#,
        r#""I3" interval(42) NOT NULL,"#,
        r#""I4" interval HOUR(43) NOT NULL"#,
        r#")"#,
    ]
    .join(" ")
);
Source

pub fn timestamp_len(&mut self, precision: u32) -> &mut ColumnDef

Set column type as timestamp with custom precision

Source

pub fn timestamp(&mut self) -> &mut ColumnDef

Set column type as timestamp

Source

pub fn timestamp_with_time_zone(&mut self) -> &mut ColumnDef

Set column type as timestamp with time zone. Postgres only

Source

pub fn timestamp_with_time_zone_len(&mut self, precision: u32) -> &mut ColumnDef

Set column type as timestamp with time zone plus custom precision

Source

pub fn time_len(&mut self, precision: u32) -> &mut ColumnDef

Set column type as time with custom precision

Source

pub fn time(&mut self) -> &mut ColumnDef

Set column type as time

Source

pub fn date(&mut self) -> &mut ColumnDef

Set column type as date

Source

pub fn binary_len(&mut self, length: u32) -> &mut ColumnDef

Set column type as binary with custom length

Source

pub fn binary(&mut self) -> &mut ColumnDef

Set column type as binary

Source

pub fn blob(&mut self, size: BlobSize) -> &mut ColumnDef

Set column type as blob, but when given BlobSize::Blob(size) argument, this column map to binary(size) type instead.

Source

pub fn var_binary(&mut self, length: u32) -> &mut ColumnDef

Set column type as binary with variable length

Source

pub fn boolean(&mut self) -> &mut ColumnDef

Set column type as boolean

Source

pub fn money_len(&mut self, precision: u32, scale: u32) -> &mut ColumnDef

Set column type as money with custom precision and scale

Source

pub fn money(&mut self) -> &mut ColumnDef

Set column type as money

Source

pub fn json(&mut self) -> &mut ColumnDef

Set column type as json. On MySQL, this is equivalent to json_binary. On MariaDB, this is equivalent to text. On PgSQL, this is equivalent to json.

Source

pub fn json_binary(&mut self) -> &mut ColumnDef

Set column type as json binary. On MySQL, this is equivalent to json. On MariaDB, this is equivalent to text. On PgSQL, this is equivalent to jsonb.

Source

pub fn uuid(&mut self) -> &mut ColumnDef

Set column type as uuid

Source

pub fn custom<T>(&mut self, n: T) -> &mut ColumnDef
where T: 'static + Iden,

Use a custom type on this column.

Source

pub fn enumeration<N, S, V>(&mut self, name: N, variants: V) -> &mut ColumnDef
where N: ToString, S: ToString, V: IntoIterator<Item = S>,

Set column type as enum.

Source

pub fn array(&mut self, elem_type: String) -> &mut ColumnDef

Set column type as an array with a specified element type. This is only supported on Postgres.

Source

pub fn cidr(&mut self) -> &mut ColumnDef

Set columnt type as cidr. This is only supported on Postgres.

Source

pub fn inet(&mut self) -> &mut ColumnDef

Set columnt type as inet. This is only supported on Postgres.

Source

pub fn mac_address(&mut self) -> &mut ColumnDef

Set columnt type as macaddr. This is only supported on Postgres.

Source

pub fn extra(&mut self, string: String) -> &mut ColumnDef

Some extra options in custom string

Source

pub fn get_column_name(&self) -> String

Source

pub fn get_column_type(&self) -> Option<&ColumnType>

Source

pub fn get_column_spec(&self) -> &Vec<ColumnSpec>

Source

pub fn take(&mut self) -> ColumnDef

Trait Implementations§

Source§

impl Clone for ColumnDef

Source§

fn clone(&self) -> ColumnDef

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ColumnDef

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,