кто может подсказать как лучше сделать. Есть таблица в которой делается поиск двумя разными запросами. Один по одному полю и по нему сделан индекс и другим по двум полям по одному из которых уже сделан индекс. Вопрос, как лучше сделать добавить еще один индекс по другому полю или создать индекс по двум полям с учетом уже созданного индекса по одному из этих полей отдельным индексом?
да, так и сделаю, спасибо. Я по привычке из JS думал, что разницы нет
Не стоит так делать - опираться на привычки из одного продукта при использовании другого. Документация, особенно постгресовая, по сравнению с более другими - весьма годная. И переведена на русский язык.
Не стоит так делать - опираться на привычки из одного продукта при использовании другого. Документация, особенно постгресовая, по сравнению с более другими - весьма годная. И переведена на русский язык.
ребят добрый день. Есть trigger функция внутри event функции:
CREATE OR REPLACE FUNCTION log_ddl() RETURNS event_trigger AS $func$ DECLARE audit_query TEXT; table_name TEXT; BEGIN IF tg_tag = 'CREATE TABLE' THEN
SELECT object_identity INTO table_name FROM pg_event_trigger_ddl_commands() WHERE object_type = 'table';
-------------------------------------------- CREATE OR REPLACE FUNCTION log_last_delete() RETURNS TRIGGER AS $$ BEGIN INSERT INTO new_test.tableName_values VALUES (table_name);
RETURN OLD; END $$ LANGUAGE plpgsql; ---------------------------------------------
EXECUTE format('CREATE TRIGGER moveDeleted BEFORE DELETE ON %s FOR EACH ROW EXECUTE PROCEDURE log_last_delete();', table_name);
SET search_path = public;
END IF; END $func$ LANGUAGE plpgsql;
есть переменная table_name в event функции но мне нужно ее значение и в trigger функции но почему то вместо ее значения я получаю null
Вам там что нужно? При создании таблицы привязать триггер для логирования имени таблицы из которой идёт удаление? Тогда в триггерной функции доступны tg_table_name и tg_table_schema. Поэтому в event trigger-е достаточно создать только сам триггер, а саму триггерную функцию лучше создать заранее.