У меня есть две таблицы, одна из которых имеет составной первичный ключ, а другая имеет внешние ключи к нему.Они оба настроены на каскад при удалении.Проблема в том, что когда я удаляю, скажем, скажем, составной ключ набор "имя: Джон дата: 02.02.2018" из основной таблицы, все строки Джона удаляются из таблицы с внешними ключами, но может быть установлен "имя: Джондата: 04.04.2018 ", а также все строки с датой 02.02.2018 также удалены. Как я могу удалить строки, в которых сопоставляется только набор внешнего ключа?
Обновление:
CREATE TABLE messages (
session_date date NOT NULL,
chat int(11) NOT NULL,
message longtext NOT NULL,
date time NOT NULL,
receiver int(11) NOT NULL,
PRIMARY KEY (date,receiver),
KEY FK_messages_sessions (session_date,chat),
KEY FK_messages_sessions_2 (chat,session_date),
CONSTRAINT FK_messages_sessions
FOREIGN KEY (session_date)
REFERENCES sessions (session_date)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_messages_sessions_2
FOREIGN KEY (chat)
REFERENCES sessions (chat)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1