Schema

SQL FOREIGN KEY

Enforce references between related tables when enabled and supported.

Availability: Common SQL with references for SQL standard, MySQL/MariaDB, PostgreSQL, SQL Server, SQLite and Oracle Database; syntax and feature support vary by engine and version.中文

Syntax

FOREIGN KEY (column) REFERENCES parent_table (column)

Examples

Enforce references between related tables when enabled and supported.

CREATE TABLE tasks (id INTEGER PRIMARY KEY, project_id INTEGER REFERENCES projects(id));

SQLite-oriented example; consult the relevant dialect manual.

PRAGMA foreign_keys = ON; CREATE TABLE tasks (id INTEGER PRIMARY KEY, project_id INTEGER REFERENCES projects(id));

Parameters, options and clauses

Option / clauseDescription
Object nameName a table, view, index, schema or database.
Column definitionSpecify column name, data type and default value.
ConstraintsUse NOT NULL, UNIQUE, CHECK, PRIMARY KEY or FOREIGN KEY as needed.
IF EXISTS / IF NOT EXISTSMake create/drop operations conditional where supported.
CASCADE / RESTRICTControl dependent-object handling where supported; verify before destructive changes.

Dialect references

Safety note

Review a command and its target before running it. Commands that alter files, services, accounts, disks, permissions or databases may be difficult to reverse. Test in a safe environment and keep backups.

Official reference ↗Back to directory