TableDefinition
A TableDefinition
lets you define the components of a database table.
final class TableDefinition
See the documentation of the Database
create(table:options:body:)
method for usage information:
try db.create(table: "player") { t in // t is TableDefinition
t.autoIncrementedPrimaryKey("id")
t.column("name", .text).notNull()
}
Define Columns
func column(String, Database.ColumnType?
) -> ColumnDefinition Appends a table column.
func column(literal: SQL
) Appends a table column.
func column(sql: String
) Appends a table column.
class ColumnDefinition
Describes a database column.
Define the Primary Key
func autoIncrementedPrimaryKey(String, onConflict: Database.ConflictResolution?
) -> ColumnDefinition Appends an auto-incremented primary key column.
func primaryKey(String, Database.ColumnType, onConflict: Database.ConflictResolution?
) -> ColumnDefinition Appends a primary key column.
func primaryKey(onConflict: Database.ConflictResolution?, body: () throws -> Void
) rethrows Defines the primary key on wrapped columns.
func primaryKey([String], onConflict: Database.ConflictResolution?
) Adds a primary key constraint.
Define a Foreign Key
func belongsTo(String, inTable: String?, onDelete: Database.ForeignKeyAction?, onUpdate: Database.ForeignKeyAction?, deferred: Bool, indexed: Bool
) -> ForeignKeyDefinition Declares an association to another table.
func foreignKey([String], references: String, columns: [String]?, onDelete: Database.ForeignKeyAction?, onUpdate: Database.ForeignKeyAction?, deferred: Bool
) Adds a foreign key.
class ForeignKeyDefinition
Describes an association in the database schema.
Define a Unique Key
func uniqueKey([String], onConflict: Database.ConflictResolution?
) Adds a unique constraint.
Define Others Constraints
func check(some SQLSpecificExpressible
) Adds a check constraint.
func check(some SQLExpressible
) Adds a check constraint.
func check(sql: String
) Adds a check constraint.
func constraint(literal: SQL
) Appends a table constraint.
func constraint(sql: String
) Appends a table constraint.