CREATE TABLE person (person_id INT NOT NULL,
PRIMARY KEY (person_id));
CREATE TABLE hobby (hobby_id INT NOT NULL, person_id INT NOT NULL,
PRIMARY KEY(hobby_id),
FOREIGN KEY(person_id) REFERENCES person(person_id));
Ключевое слово ссылки используется для определения таблицы и столбца, которые используются в отношении внешнего ключа. Это означает, что запись в таблице хобби должна иметь person_id, который существует в таблице person, иначе во время вставки вы получите сообщение об ошибке, что ключ не существует.
Чтобы ответить на ваш вопрос выше о том, что делает «ON DELETE CASCADE», он позволяет вам удалить запись родительского ключа (лично) и соответствующие дочерние записи (в хобби) без необходимости предварительно удалять все дочерние записи.
Чтобы уточнить, если у вас есть дочерние записи, прикрепленные к записи первичного ключа, и вы пытаетесь удалить запись первичного ключа, например:
DELETE FROM person where person_id = 1;
не имея УДАЛИТЬ НА КАСКАДЕ, вы получите сообщение об ошибке, если какие-либо записи в хобби имеют значение person_id = 1. Вы должны сначала удалить все эти записи, прежде чем выполнять удаление, указанное выше. При использовании DELETE ON CASCADE указанное выше удаление завершится успешно и автоматически удалит все записи из таблицы увлечений таблицы, связанные с person_id, удаляемым из таблицы первичного ключа.