Позвольте мне начать с того, что я администратор Linux/Unix. При этом мой менеджер поручил мне переместить старые базы данных PostgreSQL на сервер RedHat с 8.4.20. Я успешно двигаю 7.2.1 бит, но у меня возникают проблемы с перемещением 7.4.20 дБ.Ошибка создания триггера ограничения
Я использую pg_dump –c filename
и psql < filename
. Для проблемного db все работает до тех пор, пока я не получу оператор CREATE CONSTRAINT TRIGGER
. Если я запускаю его, как это в файле я получаю:
NOTICE: ignoring incomplete trigger group for constraint "" FOREIGN KEY data(ups) REFERENCES upsinfo(ups) DETAIL: Found referenced table's DELETE trigger. CREATE TRIGGER
Если я бегу set schema 'pg_catalog';
я получаю:
ERROR: relation "upsinfo" does not exist
Таблицы (я думаю), вовлеченные:
CREATE TABLE upsinfo (
ups text NOT NULL,
ipaddr inet,
rcomm text,
wcomm text,
reachable boolean,
managed boolean,
comments text,
region text
);
CREATE TABLE data (
date timestamp with time zone,
ups text,
mib text,
value text
);
Запрос триггерного запуска триггера:
CREATE CONSTRAINT TRIGGER "<unnamed>"
AFTER DELETE ON upsinfo
FROM data
NOT DEFERRABLE INITIALLY IMMEDIATE
FOR EACH ROW
EXECUTE PROCEDURE "RI_FKey_cascade_del"('<unnamed>', 'data', 'upsinfo', 'UNSPECIFIED', 'ups', 'ups');
Я знаю, что функция RI_FKey_cascade_del
определяется по-разному в разных версиях pg_catalog. Обратите внимание, что для параметра search_path установлено значение «public, pg_catalog», поэтому я также смущен, почему мне нужно установить схему.
Снова я не настоящий администратор базы данных PostgreSQL, поэтому старайтесь быть добрым.
Спасибо вам за помощь. (И за то, что вы нежны.) Это типичная история: никто не поддерживает программное обеспечение в течение многих лет, а затем внезапно становится все неожиданным. Я попрошу (более как попросить) обновить версию Postgres на новом сервере. –