1. xTODx - 23 Февраля, 2014 - 00:08:01 - перейти к сообщению
Всем привет! вот пришло время обеспечить целостность базы данных, но связи не хотят создаваться. Ни каких сообщений о ошибки. работаю через дизайнера в phpmyadmin Выбираю ключ, выбираю второе поле, нажимаю окей, реакции 0, связи не рисует. и в общем её вообще нету. что делать не знаю.
2. caballero - 23 Февраля, 2014 - 00:18:39 - перейти к сообщению
таблицы innodb?
3. xTODx - 23 Февраля, 2014 - 00:33:58 - перейти к сообщению
caballero пишет:
таблицы innodb?
угу.. InnoDB все таблицы.
может делаю что не так??? как вообще нужно их создавать?
изначально цель такова, если у меня с таблицы category удалят одну категорию $id, то в таблице theme удалятся все темы у которых соответственно поле category = $id
(Этапы)
1) нажимаю "создать связь " в дизайнере
2) выбираю ключевое поле в таблице категорий
3) выбираю поле категорий в таблице с темами.
4. caballero - 23 Февраля, 2014 - 01:10:24 - перейти к сообщению
для этого надо задать каскадное удаление а не некую связь в дизайнере
5. xTODx - 23 Февраля, 2014 - 01:39:29 - перейти к сообщению
caballero пишет:
хм, спасибо. и как это сделать? связь ведь "один к многим"
для этого надо задать каскадное удаление а не некую связь в дизайнере
6. xTODx - 23 Февраля, 2014 - 09:17:42 - перейти к сообщению
Пока нашёл вот такое вот. Но на сколько я понимаю, оно просто не даёт создавать в таблице тема строки, параметра category которых нету в таблице категорий(столбце id);
и так же запрещает удалять категорию, если в ней есть темы.
Но мне нужно что бы при удалении категорий, удалялись все темы.
неужели запросами всё?
Либо так?
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CREATE TRIGGER auto_del BEFORE DELETE ON forum_categ
- FOR EACH ROW BEGIN
- DELETE FROM forum_theme WHERE categ = OLD.id;
- END;
но тут где то ошибочка
Спойлер (Отобразить)