MySQL: Добавить внешний ключ к существующей таблице

Чтобы добавить внешний ключ к существующей таблице в MySQL можно использовать команду ALTER TABLE. Это позволяет модифицировать структуру таблицы после её создания.

Для успешного добавления внешнего ключа, столбцы, на которые он ссылается, должны иметь точно такой же тип данных и размер. Кроме того, в таблице, к которой добавляется внешний ключ, данные в столбце внешнего ключа должны уже соответствовать существующим данным в родительской таблице, иначе операция завершится с ошибкой.

Пример:

Допустим, уже есть таблицы clients и orders, и нужно добавить внешний ключ в таблицу orders, который будет ссылаться на clientID в таблице clients.

ALTER TABLE orders
ADD CONSTRAINT fk_client_id
FOREIGN KEY (clientID) REFERENCES clients(clientID)
ON DELETE SET NULL
ON UPDATE CASCADE;

# ALTER TABLE orders -- указывает, что мы будем изменять структуру таблицы orders
# ADD CONSTRAINT fk_client_id -- добавляет ограничение внешнего ключа с именем fk_client_id. Имя ограничения можно выбрать любое, но оно должно быть уникальным в рамках базы данных.
# FOREIGN KEY (clientID) -- определяет столбец, который будет внешним ключом.
# REFERENCES clients(clientID) -- указывает, что внешний ключ ссылается на столбец clientID в таблице clients.
# ON DELETE SET NULL -- определяет, что произойдёт с данными в столбце clientID таблицы orders, если соответствующая запись в таблице clients будет удалена. В данном случае, значение станет NULL.
# ON UPDATE CASCADE -- указывает, что при изменении значения clientID в таблице clients, соответствующие значения в таблице orders будут автоматически обновлены.
MySQL Просмотров: 200
Оценить код:

Комментарии

Ваш комментарий будет первым.
Войдите, чтобы оставить комментарий.