Syntax
Constraints are defined when you create or alter a table. The general syntax for constraints is shown here:
CONSTRAINT [constraint_name]constraint_type[(column[, ...])] [predicate] [constraint_deferment] [deferment_timing]
The syntax elements are as follows:
- CONSTRAINT [
constraint_name] Begins a constraint definition and, optionally, provides a name for the constraint. When you omit
constraint_name, the system will create a name for you automatically. On some platforms, you may omit the CONSTRAINT keyword as well.Tip
System-generated names are often incomprehensible. It is good practice to specify human-readable, sensible names for constraints.
constraint_typeDeclares the constraint as one of the allowable types: CHECK, PRIMARY KEY, UNIQUE, or FOREIGN KEY. More information about each type of constraint appears later in this section.
column[, . . . ]Associates one or more columns with the constraint. Specify the columns in a comma-delimited list, enclosed in parentheses. The column list should be omitted for column-level constraints. Columns are not used in every constraint. For example, CHECK constraints do not generally use column references.
predicateDefines a predicate for CHECK constraints.
constraint_defermentDeclares a constraint as DEFERRABLE or NOT DEFERRABLE. When a constraint is deferrable, you can specify that it be checked for a rules violation at the end of a transaction. When a constraint is not deferrable, it is checked for a rules violation at the conclusion ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access