Следующая установка будет:Использование внешних ключей для удаления записей в нескольких таблицах
- Позвольте мне удалить существующие записи
- Предотвратить меня от создания новых записей в
products
Это возможно происходит потому, что записи создаются в products
до categories_products
. Но я не могу создать записи в categories_products
, прежде чем я узнаю идентификатор продукта.
Что вы хотите сделать?
ALTER TABLE products
ADD CONSTRAINT FK_products
FOREIGN KEY (id) REFERENCES categories_products(product_id)
ON UPDATE CASCADE
ON DELETE CASCADE;
Столы
categories:
id, name
categories_products:
category_id, product_id
products:
id, name
Какой заказать каждый элемент получает создан
- Создать запись в категории
- Создайте запись в продукте
- U петь идентификаторы из 1. и 2. создать связь между
categories
иproducts
Это работает. Но когда я пытаюсь удалить категорию, записи в «продуктах» и «category_products» все еще остаются. – Cudos
@Cudos - вам нужно аналогичное ограничение на category_id для таблицы категорий. Но вы действительно не хотите удалять продукт, если категория удалена, хотя вы? –
Почему нет? Если категория ушла, продукты также должны исчезнуть. – Cudos