ВУЗ:
Составители:
Рубрика:
– 148 –
Окончание табл. 6.2
TGINLTDEF ERRED boolean
TGNARGS smallint
TGATTR int2vector
TGARGS bytea
Большинство полей, перечисленных в таблице 6.2, в прямых запросах не
используется. Среди атрибутов триггеров в системной таблице
pg_trigger цен-
тральное место занимают атрибуты
tgrelid и tgname.
В поле
tgrelid хранится идентификатор отношения, с которым связан дан-
ный триггер. Значение относится к типу
oid и соответствует содержимому поля
relfilenode системной таблицы pg_class. В поле tgname хранится имя тригге-
ра, указанное в команде
CREATE TRIGGER при его создании.
6.2.3. У
ДАЛЕНИЕ ТРИГГЕРА
Команда DROP TRIGGER удаляет триггер из базы данных. Удаление тригге-
ров, как и их создание командой
CREATE TRIGGER, может выполняться только
владельцем триггера или суперпользователем.
Синтаксис удаления существующих триггеров:
DROPTRIGGERимяONтаблица
В листинге 6.45 приведен пример удаления триггера check_shipment, уста-
новленного для таблицы
shipments.
Листинг 6.45. Удаление триггера
booktown=#DROPTRIGGERcheck_shipmentONshipments:
DROP
Сообщение DROP означает, что триггер успешно удален. Обратите внима-
ние: при удалении указывается не только имя удаляемого триггера, но и имя
таблицы.
Если вы не помните, в какой таблице был установлен удаляемый триггер,
необходимую информацию можно получить из системных таблиц
PostgreSQL.
Например, можно провести объединение полей
tgrelid системной таблицы
pg_trigger и поля relfilenode системной таблицы pg_class и сравнить имя
триггера с полем
tgname. Запрос, приведенный в листинге 6.46, возвращает имя
отношения (
relname), связанного с триггером check_shipment.
Листинг 6.46. Получение имени таблицы, связанной с триггером
booktown=#SELECTrelnameFROMpg_class
booktown‐#INNERJOINpg_trigger
booktown‐#ON(tgrelid=relfilenode)
booktown‐#WHEREtgname='check_shipment':.
relname
shipments
(1row)
Страницы
- « первая
- ‹ предыдущая
- …
- 146
- 147
- 148
- 149
- 150
- …
- следующая ›
- последняя »