Enumeration
SQLTableConstraintAlgorithm
Table-level data constraints.
enum SQLTableConstraintAlgorithm
Overview
Most dialects of SQL support both column-level (specific to a single column) and table-level (applicable to a list of one or more columns within the table) constraints. While some constraints can be expressed either way, others are only allowed at the column level. See SQLColumnConstraintAlgorithm for column-level constraints.
Most table-level constraints can optionally be explicitly named; see SQLConstraint for this functionality.
Table constraints are used by SQLCreateTable and SQLAlterTable, and also appear directly in the APIs of SQLAlterTableBuilder, SQLCreateIndexBuilder, and SQLCreateTableBuilder.
Topics
Enumeration Cases
SQLTableConstraintAlgorithm.check(_:)ACHECKconstraint and its associated validation expression.SQLTableConstraintAlgorithm.foreignKey(columns:references:)AFOREIGN KEYconstraint over one or more columns, specifying the referenced data.SQLTableConstraintAlgorithm.primaryKey(columns:)APRIMARY KEYconstraint over one or more columns.SQLTableConstraintAlgorithm.unique(columns:)AUNIQUEvalue constraint, also called a unique key, over one or more columns.
Instance Methods
serialize(to:)Invoked when a request is made to serialize the expression to raw SQL.
Relationships
Conforms To
SQLExpressionSwift.SendableSwift.SendableMetatype
See Also
Clause Expressions
SQLAlterColumnDefinitionTypeA clause specifying a new data type to be applied to an existing column.SQLColumnAssignmentEncapsulates acolumn_name=valueexpression in the context of anUPDATEquery’s value assignment list. This is distinct from anSQLBinaryExpressionusing the.equaloperator in that the left side must be an unqualified column name, the operator must be=, and the right side may useSQLExcludedColumnwhen the assignment appears in theassignmentslist of aSQLConflictAction.update(assignments:predicate:)specification.SQLColumnConstraintAlgorithmColumn-level data constraints.SQLColumnDefinitionA clause expressing a column definition, for use when creating and altering tables.SQLConflictActionAn action to take when anINSERTquery encounters a unique constraint violation.SQLConflictResolutionStrategySpecifies a conflict resolution strategy and associated conditions for anINSERTquery. AnINSERTwith a conflict strategy is often refered to as anUPSERT(“insert or update”). Databases are not required to support any given subset of upsert functionality, or any at all.SQLDropBehaviorSpecifies a behavior when performing aDROPoperation on a database object which is referenced by other objects.SQLEnumDataTypeRepresents a data type which specifies an enumeration in the database.SQLExcludedColumnAn expression appearing on the right side of a column assignment which, when the assignment list is part of an upsert’s update acion, refers to the value which was originally to be inserted for the given column.SQLForeignKeyA completeFOREIGN KEYconstraint specification.SQLInsertModifierSimple helper for working around MySQL’s refusal to implement standard SQL. Only emits SQL when needed.SQLJoinEncapsulates a single SQLJOIN, specifying the join type, the right-side table, and condition.SQLJoinMethodThe method used by a table join clause.SQLLockingClauseAn SQL locking clause.SQLOrderByA pair of expressions, one describing a query sort key and the other a directionality for that key.