powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Внешние ключи MySQL
7 сообщений из 7, страница 1 из 1
Внешние ключи MySQL
    #38551801
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы: Dishes(блюда) и Speceis(специи). У одного блюда может быть несколько добавок, а одна добавка может быть добавлена в несколько блюд. Многие ко многим. Создал сводную таблицу Svodnaya. В ней id, dishes_id, species_id. Нужно чтоб при удалении какого-то блюда в Dishes удалялись все связанные строки в таблице Svodnaya, но при update блюда ничего не делалось в дочерней таблице. Так же с добавками.
написал так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
alter table svodnaya
add foreign key(dishes_id)
references dishes(id)
on delete cascade;

alter table svodnaya 
add foreign key(species_id)
references species(id)
on delete cascade;


Попробовал удалить блюдо в Dishes, не дает удалить. Такая ошибка:
Cannot delete or update a parent row: a foreign key constraint fails (`bap`.`svodnaya`, CONSTRAINT `fk_svodnaya_dishes` FOREIGN KEY (`dishes_id`) REFERENCES `dishes` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION).
Помогите плз! Использую MySQL Workbench.
...
Рейтинг: 0 / 0
Внешние ключи MySQL
    #38551807
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

Вы уверены, что все точно описываете?
В показанном коде нет слова `fk_svodnaya_dishes`, которое есть в сообщении об ошибке.

Покажите результат SHOW CREATE TABLE svodnaya.
...
Рейтинг: 0 / 0
Внешние ключи MySQL
    #38551819
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE `svodnaya` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `dishes_id` int(11) NOT NULL,
  `species_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_svodnaya_dishes` (`dishes_id`),
  KEY `fk_svodnaya_species1` (`species_id`),
  CONSTRAINT `svodnaya_ibfk_2` FOREIGN KEY (`species_id`) REFERENCES `species` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_svodnaya_dishes` FOREIGN KEY (`dishes_id`) REFERENCES `dishes` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `fk_svodnaya_species1` FOREIGN KEY (`species_id`) REFERENCES `species` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `svodnaya_ibfk_1` FOREIGN KEY (`dishes_id`) REFERENCES `dishes` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8$$
...
Рейтинг: 0 / 0
Внешние ключи MySQL
    #38551822
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас все FOREIGN KEY продублированы, удалите лишние.
...
Рейтинг: 0 / 0
Внешние ключи MySQL
    #38551828
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, Вот догадывался. Но вот такая фигня, вот стираю допустим их в MySQL Workbench. Как сохранить изменения?? на что нажимать? Там молния стоит, нажимаю, хочу закрыть спрашивает save или discard changes если сэйв то просит куда сохр, кажое изменение сохранять надо что ли в директориях?
...
Рейтинг: 0 / 0
Внешние ключи MySQL
    #38551837
BIS-10-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот скрин
...
Рейтинг: 0 / 0
Внешние ключи MySQL
    #38551840
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BIS-10-2,

Нет, save - это сохранение SQL-кода в файл, это не нужно, если не собираетесь применять этот код в будущем.
Ищите что-то типа "Выполнить", Run, Execute или типа того. В некоторых подобных программах это кнопки F5 или F8.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Внешние ключи MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]