Sql внешний ключ
Так я и не смог понять что это такое... Вот взятая из интернета программа ограничивает ввод родительской таблице, если вводимое не равно значению дочерней таблици. Как бы я не переставлял - результат один и тотже, внесение изменения в одну таблицу не может влиять на одномоментное изменения в другой. получается обновления, удаление нужно задавать программным способом? а от данных ограничений толку пока не увидел... но основываясь на том, что каждый прогер юзает внешние ключи говорит о том, что они делают много больше полезного чем просто ограничивать ввод. и я подразумеваю что апдейт должен обновлять, делете - удалять а сет устанавливать, но ни что из этого не работает....
На скрине создание двух таблиц и определение внешнего ключа... что не так?

Всё наоборот: переведи на русский, что означают parent и child
Это в ДОЧЕРНЮЮ таблицу ты не можешь записать КЛЮЧ, отсутствующий в РОДИТЕЛЬСКОЙ таблице. CASCADE обеспечивает автоматическое удаление записей в ДОЧЕРНЕЙ таблице, когда удаляется запись в РОДИТЕЛЬСКОЙ; аналогично с изменением КЛЮЧА РОДИТЕЛЬСКОЙ таблицы (впрочем, никто в здравом уме не меняет первичные ключи).
Внешние ключи нужны для того, чтобы обеспечить ЦЕЛОСТНОСТЬ данных: гарантируется, что столбцы, по которым создаются связи между таблицами, содержат корректные данные.