Вы можете скрыть реальную таблицу, создать представление и использовать правила для вставки, обновления и удаления.
Предположим, у вас есть сеансовый стол. Я хотел бы создать таблицу с именем session_table, которая содержит все данные и столбец «active». Затем у вас есть представление, называемое сеансом (СОЗДАЙТЕ сеансы представления, КАК ВЫБРАТЬ [все поля без активного] FROM session_table WHERE active = TRUE), как упомянуто Грегом.
Теперь вы можете создать правило: если вы хотите удалить строку в сеансах, вместо этого вы хотите обновить строку в session_table:
СОЗДАТЬ ПРАВИЛО delete_session ON УДАЛИТЬ ДЛЯ СЕССИЙ, УСТАНАВЛИВАТЬ ОБНОВЛЕНИЕ session_table SET active = FALSE WHERE id = OLD.id;
Для вставки вам понадобится:
СОЗДАТЬ ПРАВИЛО insert_session ВКЛЮЧИТЬ В СЕССИИ ВСТАВЛЯТЬ ВСТАВИТЬ В СЕССЫ_таблицы (..., активные) ЗНАЧЕНИЯ (..., ИСТИНА);
И, наконец, у нас есть
СОЗДАЙТЕ ПРАВИЛО update_session ВКЛЮЧЕНО ОБНОВЛЕНИЕ К СЕССИИ, УСТАНАВЛИВАЙТЕ ОБНОВЛЕНИЕ session_table SET ... WHERE id = new.id И active = TRUE;
Теперь вы называете работу полностью в сеансах и вам не нужно беспокоиться об активной колонке.