SQL - Ограничение FOREIGN KEY

FOREIGN KEY - это ключ, используемый для соединения двух таблиц вместе. Является полем (или набором полей) в одной таблице, которое ссылается на PRIMARY KEY в другой таблице.

Таблица, содержащая внешний ключ, называется дочерней таблицей, а таблица, содержащая ключ-кандидат, называется ссылочной или родительской таблицей.

SQL FOREIGN KEY в CREATE TABLE

Следующий SQL создает FOREIGN KEY в столбце «user_id» при создании таблицы «invoice»:

CREATE TABLE invoice (
    invoice_id int NOT NULL,
    number int NOT NULL,
    user_id int,
    PRIMARY KEY (invoice_id),
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);

Чтобы разрешить именовать ограничение FOREIGN KEY и определять ограничение FOREIGN KEY для нескольких столбцов, используйте следующий синтаксис SQL:

CREATE TABLE invoice (
    invoice_id int NOT NULL,
    number int NOT NULL,
    user_id int,
    PRIMARY KEY (invoice_id),
    CONSTRAINT FK_UserInvoice FOREIGN KEY (user_id)
    REFERENCES Users(user_id)
);

SQL FOREIGN KEY на ALTER TABLE

Чтобы создать ограничение FOREIGN KEY в столбце «user_id», когда таблица «invoice» уже создана, используйте следующее:

ALTER TABLE invoice
ADD FOREIGN KEY (user_id) REFERENCES Users(user_id);

Чтобы разрешить именовать ограничение FOREIGN KEY и определять ограничение FOREIGN KEY для нескольких столбцов, используйте следующий синтаксис:

ALTER TABLE invoice
ADD CONSTRAINT FK_UsersInvoice
FOREIGN KEY (user_id) REFERENCES Users(user_id);

DROP a FOREIGN KEY

Чтобы удалить ограничение FOREIGN KEY, используйте следующий:

ALTER TABLE invoice
DROP FOREIGN KEY FK_UsersInvoice;