- Разработка
- Бизнес
- ИТ и ПО
- Личностный рост
- Дизайн
- Маркетинг
- Красота
- Фотография и видео
- Здоровье и спорт
- Музыка
- Образование
- Подготовка к экзаменам
- Языки
- Работа на компьютере
- Строительство и ремонт
- Кулинария
- Сельское хозяйство
- Фриланс
- ПДД и вождение
- Игры
- Школьное образование
- Профессиональная ориентация
- Шитье и кожевенное дело
- Рукоделие
- Каменные и столярные работы
- Собеседование
- Рыбалка и охота
- Страны
Язык SQL. INSERT и DELETE триггеры в базах данных SQLite.
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Текстовая версия: http://zametkinapolyah.ru/zame....tki-o-mysql/tema-13-
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
-- INSERT и DELETE триггеры
DROP TABLE users;
DROP TABLE user_log;
CREATE TABLE users(
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL,
address TEXT NOT NULL,
mydate TEXT NOT NULL
);
CREATE TABLE user_log (
Id_u INTEGER NOT NULL,
u_date TEXT NOT NULL,
operation TEXT NOT NULL
);
-- Мы добавили столбец operation, в котором будем хранить информацию о том, что мы сделали с пользователем: удалили или добавили.
-- Напишим новый INSERT триггер, который будет учитывать новый столбец
CREATE TRIGGER my_u_log AFTER INSERT
ON users
BEGIN
INSERT INTO user_log(id_u, u_date, operation) VALUES (NEW.id, datetime('now'),'ins');
END;
-- Напишем триггер, который будет срабатывать по событию удаления строк
CREATE TRIGGER after_delete AFTER DELETE
ON users
BEGIN
INSERT INTO user_log(id_u, u_date, operation) VALUES (OLD.id, datetime('now'), 'del');
END;
-- Сделаем проверку
INSERT INTO users(name, age, address, mydate)
VALUES ('Пупкин', 27, 'Адрес', datetime('now'));
INSERT INTO users(name, age, address, mydate)
VALUES ('Сумкин', 17, 'Адрес2', datetime('now'));
INSERT INTO users(name, age, address, mydate)
VALUES ('Иванов', 37, 'Адрес3', datetime('now'));
INSERT INTO users(name, age, address, mydate)
VALUES ('Петров', 47, 'Адрес4', datetime('now'));
INSERT INTO users(name, age, address, mydate)
VALUES ('Сидоров', 57, 'Адрес5', datetime('now'));
INSERT INTO users(name, age, address, mydate)
VALUES ('Парамонов', 7, 'Адрес6', datetime('now'));
DELETE FROM users WHERE id = 4;
SELECT * FROM user_log;
SELECT * FROM users;
-- давайте обратим внимание на код триггера AFTER DELETE, в котором мы использовали модификатор OLD, модификатор OLD в SQL и SQLite используется в коде триггера для того, чтобы обратиться к старому значению или к значению, которое хранится в таблице (значение, которое будет изменено или модифицировано).