ColumnDefinition
Describes a database column.
final class ColumnDefinition
You get instances of ColumnDefinition
when you create or alter a database tables. For example:
try db.create(table: "player") { t in
t.column("name", .text) // ColumnDefinition
}
try db.alter(table: "player") { t in
t.add(column: "score", .integer) // ColumnDefinition
}
See column(_:_:)
and add(column:_:)
.
Related SQLite documentation:
Foreign Keys
func references(String, column: String?, onDelete: Database.ForeignKeyAction?, onUpdate: Database.ForeignKeyAction?, deferred: Bool
) -> Self Adds a foreign key constraint.
Indexes
func indexed(
) -> Self Adds an index.
func unique(onConflict: Database.ConflictResolution?
) -> Self Adds a unique constraint.
Default value
func defaults(to: some DatabaseValueConvertible
) -> Self Defines the default value.
func defaults(sql: String
) -> Self Defines the default value.
Collations
func collate(DatabaseCollation
) -> Self Defines the default collation.
func collate(Database.CollationName
) -> Self Defines the default collation.
Generated Columns
func generatedAs(some SQLExpressible, GeneratedColumnQualification
) -> Self Defines the column as a generated column.
func generatedAs(sql: String, GeneratedColumnQualification
) -> Self Defines the column as a generated column.
enum GeneratedColumnQualification
The kind of a generated column.
Other Constraints
func check((Column) -> any SQLExpressible
) -> Self Adds a check constraint.
func check(sql: String
) -> Self Adds a check constraint.
func notNull(onConflict: Database.ConflictResolution?
) -> Self Adds a not null constraint.
Sunsetted Methods
Those are legacy interfaces that are preserved for backwards compatibility. Their use is not recommended.
func primaryKey(onConflict: Database.ConflictResolution?, autoincrement: Bool
) -> Self Adds a primary key constraint.