Основы SQL - #4 - Триггеры
Вставка
- Опубліковано 29 вер 2024
- Пройди БЕСПЛАТНО профориентацию в IT - bit.ly/2NLILne
На этом уроке мы рассмотрим понятие триггер в базах данных и как с ним работать (создавать, удалять) в SQLite, MySQL и PostgreSQL.
Полезные ссылки:
• www.sqlite.org...
• dev.mysql.com/...
• www.postgresql....
Ссылка на профиль автора вконтакте: sk.avenger
Не ограничивай себя видеоуроками на UA-cam!
Узнавайте еще больше полезной информации! Общайтесь с опытными разработчиками, преподавателями и развивайся через личное общение!
Школа онлайн-образования: loftschool.com/
Telegram: telegram.me/lo...
Slack: slack.loftblog.ru/
Сайт: loftblog.ru/
Instagram: / loftblog
Группа вконтакте: loftblog
Facebook: / loftblog
Twitter: / loft_blog
Больше уроков от lofblog: #loftblog
Все уроки по хештегу: #loftblogSQL
Полезные уроки для веб-программиста: #вебпрограммист
#SQL
-----------------------------------------------------------------------------------
Не забываем, что самый лучший способ сказать "спасибо" - нажать кнопку "нравится" и скинуть ссылку на урок друзьям. Ничто другое так сильно не мотивирует автора продолжать работу :))
Вот если человек нормально объясняет, то обязательно бросает на середине дела.
Какая у тебя ОС? Классно выглядит!))P.S.: Уроки супер, спасибо.
Андрей Воронцов Ubuntu, советую снести Windows и поставить Ubuntu.
Sasha Sashovic я пользуюсь Ubuntu, просто я не видел такой версии)
Ubuntu, оболочка Gnome по моему.
У выдает ошибку постоянно .У меня MYSql
delimiter$$
create trigger new_profile after insert on users for each row
begin
insert into profiles(user_id) values (New,ID);
End$$
delimiter; выдает такую ошибку
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end$$
delimiter$$ -> create trigger new_profile after insert on users for ea' at line 1
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end$$ delimiter' at line 1
Ты в воркбенче?
@@Kojithebestever это было давно и не помню уже
Можете следующий урок по индексам сделать?)
Давно хотел их понять, темболее думаю другим тоже будет интересно.
+WRONGWAY4YOU +
+WRONGWAY4YOU ++
+WRONGWAY4YOU будут индексы, но позже
очень хорошо объясняется и еще плюс в этом виде рассматривается разные СУБД особенно Postgresql и mysql
Спасибо)
сколько всего хочется изучить, а голова всего одна и память не увеличивается :(
Так а для чего дана память. Правильно чтобы её развивать!
Круто! Офигенно! Но...
Было бы круто если бы вначале ролика было пояснение:
-"зачем же по истине нужны триггеры?",
-"как они упрощают (или нет) работу разработчика?".
А так только краткое описание из доки.
Ответы на эти вопросы сами приходят с опытом) Сижу вот и учу, как сделать триггеры, потому что очень нужны для решения проблемы одной
Всё встало на свои места. Теперь я понял триггеры, благодаря вашему видео. Большое спасибо!
Добрый вечер
Надеюсь не отвлекаю
Вопрос что за OS у вас установлена
Буду рад и благодарен
Жду ответа
Друзья, помогите.
При вставке значения в таблицу users выдается ошибка(сверился с исходниками в уроке - все совпадает):
ОШИБКА: записи "old" не присвоено значение(на триггере update_user())
У меня postgresql и windows 10.
Блин, а у меня при апдейте ошибку пишет:
loftblog_lesson4=# UPDATE profiles SET name = 'Alex1' WHERE user_id = 1;
ERROR: record "old" has no field "user_id"
CONTEXT: SQL statement "UPDATE users SET updated_at = NOW() WHERE id = OLD.user_id"
PL/pgSQL function update_user() line 3 at SQL statement
SQL statement "UPDATE users SET updated_at = NOW() WHERE id = OLD.user_id"
PL/pgSQL function update_user() line 3 at SQL statement
всё разобрался, ошибку сделал, как списывал с экрана, нужно внимательнее списывать.
Большой Вам респект, хорошее дело делаете)
вы так хорошо обьясняете , но на ноутбуке очень плохо видно на черном фоне
Побежал пробовать на практике, удобная штука. Спасибо!
+Aksafan Спасибо, стараемся)
+Aksafan пожалуйста)
Решил поэкспериментировать и в MySQL помимо триггеров из урока написал еще такой:
drop trigger if exists delete_user;
delimiter $$
create trigger delete_user after delete on profiles
for each row
begin
delete from users where id = old.user_id;
end $$
delimiter ;
Долго пытался понять, почему выдает ошибку. Кто сообразит?
3 строка,вместо AFTER должно быть BEFORE
Надо начинать объяснять не с километровой схемы, а с небольших примеров использования. Смените методику
помогите с журнализацией
правильно "инстэд", а не инстид, пока не прочитала, думала "чоза?"
Чето имхо лучше отделять данные от кода, и писать все эти триеры в своей какой то модели и её обработчиках уже. Да и вообще кто сейчас пишет sql вручную, лучшая практика это использовать orm, а у них всегда есть какое то хуки эвенты или что то такое как не называй.
КТО КТО В ВУЗАХ БЛЯТЬ НА ПАРАХ ПИШУТ ЗБС. А ЕЩЕ ЗАНЕШЬ ЧО??? А? А? КУРС АССЕМБЛЕРА БЫЛ. ВОТ ТЕБЕ И ХАРЬКОВСИЙ НАЦИОНАЛЬНЫЙ
Возможен ли такой вариант, чтобы немножко отклониться от темы и показать, как подключать и работать с Django + PostgreSQL ?
+Виталий Голубев в хорошую сторону смотрите, но в рамках этого курса я думаю это невозможно, разве что отдельное видео
+Alexandr Skrylev Я был бы очень благодарен вам.
"ИНСТЕАД" ?? шта?
А что ето такое и для чого он нужен. Урок бред.
Автор на примерах показывает для чего нужны триггеры. Конкретно в этом видео на 3 примерах 2-х связанных таблиц по primary key. 3 разных случая требуют одновременного изменения данных сразу во 2-й таблице при изменении, удалении или добавлении данных в 1-й таблице