Я установил целостность внешнего ключа в таблице. Но я могу удалить данные из главной таблицы, которая является ссылкой в дочерней таблице. Какая проблема На самом деле он должен сказать, что ошибка при удалении, как и все указанные таблицы, должна быть удалена.
Вы указали ВКЛ. УДАЛИТЬ КАСКАД? когда вы создали свой FK? Не знаете, какой двигатель вы используете либо
Пример
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
Подробнее здесь http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
mysql не делает этого для вас,
вам нужно объявить триггер при действии удаления
перед примером триггера удаления:
http://www.java2s.com/Code/Oracle/Trigger/Createabeforedeletetrigger.htm