Это видео недоступно.
Сожалеем об этом.

SQL запросы. INSTEAD OF триггеры в базах данных SQLite и редактирование VIEW

Поделиться
HTML-код
  • Опубликовано: 16 дек 2016
  • Рубрика SQLite на сайте: zametkinapolyah...
    Текстовая версия: zametkinapolyah...
    Паблик блога в ВК: zametki...
    Тематическая группа в ВК: zametki_bd
    Помощь проекту:
    WMR: R288272666982
    WMZ: Z293550531456
    Яндекс.Деньги: 410011531129223
    -- Редактирование VIEW при помощи INSTEAD OF триггера в SQLite
    -- В SQLite нет возможности редактировать VIEW, Но мы можем манипулировать данными VIEW, которые хранятся в представлениях (данное выражение не совсем корректно, так как данные в представлениях не хранятся, это всего лишь результирующая таблица запроса SELECT) при помощи INSTEAD OF триггера.
    -- UPDATE VIEW
    CREATE TRIGGER trigg_name
    INSTEAD OF UPDATE OF column_name ON view_name
    BEGIN
    -- делаем команду UPDATE для таблицы, на основе которой создана VIEW
    END;
    -- INSERT VIEW
    CREATE TRIGGER trigg_name
    INSTEAD OF INSERT ON view_name
    BEGIN
    -- делаем команду INSERT для таблицы, на основе которой создана VIEW
    END;
    -- DELETE VIEW
    CREATE TRIGGER trigg_name
    INSTEAD OF DELETE ON view_name
    BEGIN
    -- делаем команду DELETE для таблицы, на основе которой создана VIEW
    END;
    -- создадим представление
    CREATE VIEW vw_city AS
    SELECT city.name AS gorod, city.population AS naselenie
    FROM city LIMIT 10;
    -- посмотрим на нашу VIEW
    SELECT * FROM vw_city;
    -- Попробуем отредактировать VIEW
    CREATE TRIGGER update_vw_city
    INSTEAD OF UPDATE ON vw_city
    BEGIN
    UPDATE city SET name = NEW.gorod WHERE population = NEW.naselenie;
    UPDATE city SET population = NEW.naselenie WHERE name = NEW.gorod;
    END;
    UPDATE vw_city SET gorod = 'Новое название города'
    WHERE naselenie = 234323;
    UPDATE vw_city SET naselenie = 15
    WHERE gorod = 'Kabul';
    SELECT * FROM vw_city;
    SELECT * FROM city LIMIT 10;
    -- по аналогии вы можете сделать свои триггеры для редактирования VIEW

Комментарии •