Язык SQL. INSERT и DELETE триггеры в базах данных SQLite.
Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Текстовая версия: http://zametkinapolyah.ru/zametki-o-mysql/tema-13-triggery-v-sql-na-primere-bazy-dannyx-sqlite.html
Паблик блога в ВК: 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 используется в коде триггера для того, чтобы обратиться к старому значению или к значению, которое хранится в таблице (значение, которое будет изменено или модифицировано).
Последние сообщения
127 полезных и бесплатных онлайн академий
23.04.2019
Ресурсы для objective-C программистов
21.03.2018