>

CONSTRAINT Clause

Description

A constraint is similar to an index, although it can also be used to establish a relationship with another table.

You use the CONSTRAINT clause in ALTER TABLE and CREATE TABLE statements to create or delete constraints. There are two types of CONSTRAINT clauses: one for creating a constraint on a single field and one for creating a constraint on more than one field.

Note

The Microsoft Jet database engine doesn't support the use of CONSTRAINT, or any of the data definition language (DDL) statements, with non-Jet databases. Use the data access object Create methods instead.

Syntax

Single-field index:

CONSTRAINT name {PRIMARY KEY |
UNIQUE |
REFERENCES foreigntable [(foreignfield1, foreignfield2)]}

Multiple-field index:

CONSTRAINT name
{PRIMARY KEY (primary1[, primary2 [, ...]]) |
UNIQUE (unique1[, unique2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]}

The CONSTRAINT clause has these parts.

Part Description
   
name The name of the constraint to be created.
primary1, primary2 The name of the field or fields to be designated the primary key.
unique1, unique2 The name of the field or fields to be designated as a unique key.
ref1, ref2 The name of a foreign key field or fields that refer to fields in another table.
foreigntable The name of the foreign table containing the field or fields specified by foreignfield.
foreignfield1, foreignfield2 The name of the field or fields in foreigntable specified by ref1, ref2. You can omit this clause if the referenced field is the primary key of foreigntable.

Remarks

You use the syntax for a single-field constraint in the field-definition clause of an ALTER TABLE or CREATE TABLE statement immediately following the specification of the field's data type.

You use the syntax for a multiple-field constraint whenever you use the reserved word CONSTRAINT outside a field-definition clause in an ALTER TABLE or CREATE TABLE statement.

Using CONSTRAINT, you can designate a field as one of the following types of constraints:

Note

Don't set a PRIMARY KEY constraint on a table that already has a primary key; if you do, an error occurs.

See Also

ALTER TABLE Statement, CREATE INDEX Statement, CREATE TABLE Statement, DROP Statement.

Example

This example creates a new table called ThisTable with two Text fields.


CREATE TABLE ThisTable (FirstName TEXT, LastName TEXT);
This example creates a new table called MyTable with two Text fields, a Date/Time field, and a unique index made up of all three fields.


CREATE TABLE MyTable (FirstName TEXT, LastName TEXT, DateOfBirth     DATETIME, CONSTRAINT MyTableConstraint
    UNIQUE (FirstName, LastName, DateOfBirth));
This example creates a new table with two Text fields and an Integer field. The SSN field is the primary key.


CREATE TABLE NewTable (FirstName TEXT, LastName TEXT, SSN INTEGER CONSTRAINT MyFieldConstraint PRIMARY KEY);