Я работаю над простой базой данных, где я бы хотел, чтобы один был для многих отношений, я создал внешний ключ, который имеет на ON UPDATE CASCADE
, основываясь на моем понимании ON UPDATE CASCADE
, если мой Primary получает прирост, внешний ключ в другой таблице, ссылающийся на него, также будет увеличиваться/иметь значение Первичного в другой таблице. но проблема в том, что, когда я вставляю данные в свою родительскую таблицу, внешний ключ в другой таблице не получил значение Primary в моей родительской таблице, почему это так? Как бы мой внешний ключ имел значение ключа, связанного с ним? вот скриншот для вас, ребята easiy понять SQL Server Management Studio On Update Cascade
Как вы можете видеть P_ID
в таблице заказов не имеет значения, даже если это связано с P_ID
в таблице People
Ожидаемый результат будет что в таблице Orders значение P_ID
будет эквивалентно таблице P_ID людей, где я вставил свои данные.
Мой ожидаемый результат будет то, что на скриншоте выше, p_id в таблице заказа будет 1, поскольку его значение – KyelJmD
@KyelJmD только гулкое что сказал Диего, это звучит, как вы можете триггер, что пожары сверху insert. – Dan
Это не цель внешнего ключа, особенно с ограничением ON UPDATE. Вы должны оставить свой внешний ключ (без ON UPDATE, потому что я не думаю, что вам это нужно) и создать триггер INSTEAD OF INSERT на таблице Peoples, поэтому каждый раз, когда вы вставляете человека, он автоматически вставляет в него заказ – Diego