Как обновить внешний ключ? - PullRequest
0 голосов
/ 31 марта 2019

Я создаю две таблицы, customer и customer_order.

И установить столбец custmoer_email (foreign_key и unique) Я попытался сделать следующий код для обновления столбца:

UPDATE customer 
SET customer_email = 'user2@email.com'
WHERE customer_email = 'user@email.com';

Так что я получил ошибку из-за внешнего ключа, какВы делаете, чтобы обновить информацию customer_email?

1 Ответ

2 голосов
/ 31 марта 2019

Предположительно, вы используете электронную почту в качестве ссылки на внешний ключ в заказах.Когда вы меняете адрес электронной почты, вы получаете «висячую» ссылку на 'user@email.com'.

. То, что вам нужно, - это каскадная ссылка на внешний ключ.Примерно так:

alter table orders add constraint fk_orders_customer_email
    foreign key (customer_email) references customers(customer_email)
        on update cascade;

(Сделайте это после удаления существующего ограничения.)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...