ну целостность очень полезная вещь т.к. потом бд превращается в не пойми что. Да и после можно открыть диаграмму в программе и визуально видеть что с чем связанно и переходить по этим связям что существенно облегчает жизнь. Конечно накладывает некие ограничение особенно при транкейтах, но это решается временной отменой проверки связей foreign_key_checks = 1;
Спасибо большое за видео-урок; У меня следующая проблема: CREATE TABLE IF NOT EXISTS `depart` ( `depart_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `departament` varchar(255) DEFAULT NULL, PRIMARY KEY (`depart_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `users` ( `user_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `depart_id` int(11) unsigned DEFAULT 1, PRIMARY KEY (`user_id`), FOREIGN KEY (`depart_id`) REFERENCES `depart` (`depart_id`) ON UPDATE CASCADE ON DELETE SET DEFAULT ) ENGINE=InnoDB DEFAULT CHARSET=utf8; При выполнении кода: delete from `depart` where `depart_id` = 3; (где depart_id 3 - это отдел разработки, и я ожидаю что у всех юзеров depart_id станет равен 1) Вылетает ошибка: ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`test`.`users`, CONSTRAINT `users_ibfk_1` FOREIGN KEY (`depart_id`) REFERENCES `depart` (`depart_id`) ON UPDATE CASCADE) Подскажите что я делаю не так. Спасибо!
вы все делали правильно, просто код в лекции где установлены значения по умолчанию при удалении и обновлении ключа не работает и не будет работать, ибо в документациии прямо об этом сказано "SET DEFAULT: This action is recognized by the MySQL parser, but both InnoDB and NDB reject table definitions containing ON DELETE SET DEFAULT or ON UPDATE SET DEFAULT clauses."
Настолько просто и понятно объясняете, просто супер, спасибо!
Спасибо, мы старались :)
Спасибо вам большое! Без вас вообще все непонятно было
Спасибо, мы старались :)
Отлично. Все максимально понятно за первые 2 минуты видео. Только на примерах должны строиться любые уроки
Мы старались ^_^
Спасибо за видео! Очень удобно и все понятно!
Спасибо, мы старались ^_^
Спасибо за полезную информацию!
препод от Бога
Спасибо :)
Всё чётко и ясно, спасибо
Спасибо, стараемся для вас!
По факту и все ясно 👌
Спасибо за отклик :)
спасибо, очень доступно
Я так понимаю, ввборка в таком случае джоинами происходит?
А что делать если 1 потомок имеется 2-ух и более предков? Указывать в столбце с foregin key несколько id через запятую или как?
Это уже Many2Many связь - вам нужна дополнительная таблица ✨
Спасибо!
Я правильно понимаю, что здесь речь идёт о триггерах или тема триггеров это что-то другое?
Ох уж эта ссылочная целостность
ну целостность очень полезная вещь т.к. потом бд превращается в не пойми что. Да и после можно открыть диаграмму в программе и визуально видеть что с чем связанно и переходить по этим связям что существенно облегчает жизнь. Конечно накладывает некие ограничение особенно при транкейтах, но это решается временной отменой проверки связей foreign_key_checks = 1;
@@SklyarovRoman точно, не думала об этом! Спасибо🙌
Прошлые две лекции хотя бы понимал, а щас нет.. (зы: да, в прошлой лекции говорилось чтобы шёл в Википедию.)
А вы пропустите пока этот момент, там дальше будет попроще :)
А потом нагоните :)
Если бы не ваше сообщение, то возможно бы на этом и закончил изучение) Спасибо!
Понятно, что ничего не понятно...
И это уже первый шаг чтобы понять что именно нужно понять!
Спасибо большое за видео-урок;
У меня следующая проблема:
CREATE TABLE IF NOT EXISTS `depart` (
`depart_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`departament` varchar(255) DEFAULT NULL,
PRIMARY KEY (`depart_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_name` varchar(255) DEFAULT NULL,
`depart_id` int(11) unsigned DEFAULT 1,
PRIMARY KEY (`user_id`),
FOREIGN KEY (`depart_id`) REFERENCES `depart` (`depart_id`)
ON UPDATE CASCADE
ON DELETE SET DEFAULT
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
При выполнении кода:
delete from `depart` where `depart_id` = 3; (где depart_id 3 - это отдел разработки, и я ожидаю что у всех юзеров depart_id станет равен 1)
Вылетает ошибка:
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`test`.`users`, CONSTRAINT `users_ibfk_1` FOREIGN KEY (`depart_id`) REFERENCES `depart` (`depart_id`) ON UPDATE CASCADE)
Подскажите что я делаю не так.
Спасибо!
вы все делали правильно, просто код в лекции где установлены значения по умолчанию при удалении и обновлении ключа не работает и не будет работать, ибо в документациии прямо об этом сказано "SET DEFAULT: This action is recognized by the MySQL parser, but both InnoDB and NDB reject table definitions containing ON DELETE SET DEFAULT or ON UPDATE SET DEFAULT clauses."