TableDefinition
public final class TableDefinitionThe TableDefinition class lets you define table columns and constraints.
You don’t create instances of this class. Instead, you use the Database
create(table:) method:
try db.create(table: "player") { t in // t is TableDefinition
    t.column(...)
}
- 
                  
                  Defines the auto-incremented primary key. try db.create(table: "player") { t in t.autoIncrementedPrimaryKey("id") }The auto-incremented primary key is an integer primary key that automatically generates unused values when you do not explicitly provide one, and prevents the reuse of ids over the lifetime of the database. It is the preferred way to define a numeric primary key. The fact that an auto-incremented primary key prevents the reuse of ids is an excellent guard against data races that could happen when your application processes ids in an asynchronous way. The auto-incremented primary key provides the guarantee that a given id can’t reference a row that is different from the one it used to be at the beginning of the asynchronous process, even if this row gets deleted and a new one is inserted in between. See https://www.sqlite.org/lang_createtable.html#primkeyconst and https://www.sqlite.org/lang_createtable.html#rowid DeclarationSwift @discardableResult public func autoIncrementedPrimaryKey(_ name: String, onConflict conflictResolution: Database.ConflictResolution? = nil) -> ColumnDefinitionParametersconflictResolutionAn optional conflict resolution (see https://www.sqlite.org/lang_conflict.html). Return ValueSelf so that you can further refine the column definition. 
- 
                  
                  Appends a table column. try db.create(table: "player") { t in t.column("name", .text) }See https://www.sqlite.org/lang_createtable.html#tablecoldef DeclarationSwift @discardableResult public func column(_ name: String, _ type: Database.ColumnType? = nil) -> ColumnDefinitionParametersnamethe column name. typethe eventual column type. Return ValueAn ColumnDefinition that allows you to refine the column definition. 
- 
                  
                  Defines the table primary key. try db.create(table: "citizenship") { t in t.column("citizenID", .integer) t.column("countryCode", .text) t.primaryKey(["citizenID", "countryCode"]) }See https://www.sqlite.org/lang_createtable.html#primkeyconst and https://www.sqlite.org/lang_createtable.html#rowid DeclarationSwift public func primaryKey(_ columns: [String], onConflict conflictResolution: Database.ConflictResolution? = nil)ParameterscolumnsThe primary key columns. conflictResolutionAn optional conflict resolution (see https://www.sqlite.org/lang_conflict.html). 
- 
                  
                  Adds a unique key. try db.create(table: "place") { t in t.column("latitude", .double) t.column("longitude", .double) t.uniqueKey(["latitude", "longitude"]) }See https://www.sqlite.org/lang_createtable.html#uniqueconst DeclarationSwift public func uniqueKey(_ columns: [String], onConflict conflictResolution: Database.ConflictResolution? = nil)ParameterscolumnsThe unique key columns. conflictResolutionAn optional conflict resolution (see https://www.sqlite.org/lang_conflict.html). 
- 
                  
                  Adds a foreign key. try db.create(table: "passport") { t in t.column("issueDate", .date) t.column("citizenID", .integer) t.column("countryCode", .text) t.foreignKey(["citizenID", "countryCode"], references: "citizenship", onDelete: .cascade) }DeclarationParameterscolumnsThe foreign key columns. tableThe referenced table. destinationColumnsThe columns in the referenced table. If not specified, the columns of the primary key of the referenced table are used. deleteActionOptional action when the referenced row is deleted. updateActionOptional action when the referenced row is updated. deferredIf true, defines a deferred foreign key constraint. See https://www.sqlite.org/foreignkeys.html#fk_deferred. 
- 
                  
                  Adds a CHECK constraint. try db.create(table: "player") { t in t.column("personalPhone", .text) t.column("workPhone", .text) let personalPhone = Column("personalPhone") let workPhone = Column("workPhone") t.check(personalPhone != nil || workPhone != nil) }DeclarationSwift public func check(_ condition: SQLExpressible)ParametersconditionThe checked condition 
- 
                  
                  Adds a CHECK constraint. try db.create(table: "player") { t in t.column("personalPhone", .text) t.column("workPhone", .text) t.check(sql: "personalPhone IS NOT NULL OR workPhone IS NOT NULL") }DeclarationSwift public func check(sql: String)ParameterssqlAn SQL snippet 
 View on GitHub
View on GitHub Install in Dash
Install in Dash TableDefinition Class Reference
        TableDefinition Class Reference