- Development
- Business
- It and software
- Personal development
- Design
- Marketing
- Beauty
- Photography and video
- Health and sport
- Music
- Education
- Test prep
- Languages
- Work on the computer
- Construction and repair
- Cooking
- Agriculture
- Freelance
- Traffic rules and driving
- Games
- School education
- Professional orientation
- Sewing and leather work
- Handiwork
- Stone and carpentry
- Interview
- Fishing and hunting
- Countries
Язык 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 используется в коде триггера для того, чтобы обратиться к старому значению или к значению, которое хранится в таблице (значение, которое будет изменено или модифицировано).