Вы находитесь на странице: 1из 28

SQL

Бекапы и циклы
Содержание
1) Бекапы (DUMP): Создание / Восстановление.
2) Single-Primary Mode / Multi-Primary Mode
3) Deadlocks
3) Циклы
4) Курсоры
5) Практика
DUMP
Это логическая структура
описывающая Базу
данных, а также
хранящиеся в ней данные.
DUMP
Рассмотрим DUMP на примере Dbeaver и базы данных MySQL
DUMP
Используется утилита: mysqldump.exe !!!!

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
DUMP (Импорт)
DUMP (Командная
строка)

https://habr.com/post/105954/
DUMP (Single-Primary
Mode)
Зачем нужно знать о способах взаимодействия?

https://dev.mysql.com/doc/refman/5.7/en/group-replication-
single-primary-mode.html
DUMP (Multi-Primary
Mode)

https://dev.mysql.com/doc/refman/5.7/en/group-replication-multi-
primary-mode.html
DeadLocks
Deadlock found when trying to get lock; try restarting
transaction
A deadlock is a situation where different transactions are unable
to proceed because each holds a lock that the other needs.
Because both transactions are waiting for a resource to become
available, neither ever release the locks it holds.
Как бороться?
SHOW ENGINE INNODB STATUS;
ЦИКЛЫ
Как можно организовать циклы в MySQL
1) WHILE
2) LOOP
3) REPEAT 
ЦИКЛЫ (WHILE)
Синтаксис оператора WHILE
ЦИКЛЫ (WHILE)
Давайте напишем цикл,
который будет добавлять Х
строк в таблицу titles для
одного из работников
(10005).
ЦИКЛЫ (WHILE)
ЦИКЛЫ (LOOP)
Синтаксис оператора LOOP
ЦИКЛЫ (LOOP)
Давайте напишем цикл,
который будет добавлять Х
строк в таблицу titles для
одного из работников
(10005).
ЦИКЛЫ (LOOP)
ЦИКЛЫ (REPEAT)
Синтаксис оператора REPEAT
ЦИКЛЫ (REPEAT)
Давайте напишем цикл,
который будет добавлять Х
строк в таблицу titles для
одного из работников
(10005).
ЦИКЛЫ (REPEAT)
Курсоры
Что такое КУРСОР?
Курсор — это поименованная область памяти, содержащая
результирующий набор select запроса

Действия над курсорами:


Определение (DECLARE)
Открытие (OPEN)
Заполнение (FETCH)
Закрытие (CLOSE)
КУРСОРЫ (DECLARE)
Определение (DECLARE)

Открытие (OPEN)

Заполнение (FETCH)

Закрытие (CLOSE)
КУРСОРЫ (ПРИМЕР)
Пример использования
КУРСОРЫ + REPEAT
(Практика)
Давайте напишем
процедуру, которая будет
добавлять в конец фамилии
сочетание «_UP» для
сотрудников женского пола
с именем «Anneli» с
использованием курсора и
цикла REPEAT.
КУРСОРЫ + REPEAT
КУРСОРЫ + REPEAT
Вопросы

Оценить