Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML. Токмаков Г.П. - 148 стр.

UptoLike

Составители: 

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)