2012-06-25 1 views
0

У нас есть семь таблиц в Postgres database.t1, t2, t3, t4, t5, т, t7 Каждая таблица содержит различные столбцы с номером дубликата product_idвыполнить триггер, когда данные экспорта из CSV

Число product_id это существует это означает, что каждый table.That

t1 --> 123(product_id) 
t1 --> 123(with various other column data) 
t2 --> 123 upto t7 

это «123» идентификатор продукта будет существующие в каждой таблице Шифрование до t7.And также, таблица будет иметь более чем один же product_ids.

Текущее требование - обработать все product_id на моем сервере, мне нужно создать промежуточную таблицу с уникальными идентификаторами продуктов.

всякий раз, когда я обновляю таблицы (t1..t7), промежуточная таблица должна быть активирована для обновления.

Редактировать:: Промежуточное представление должно быть создано путем объединения всех семи таблиц.

Когда я снова импортировать несколько строк из CSV/(копия имя_таблицы из csvpath ...) в этих семи tables.The промежуточного зрения также должны быть вычисленным и обновляется с помощью метода запуска

Поскольку это частая операция. Обновление таблиц из csv и повторное вычисление и обновление промежуточного представления.

Итак, как он должен писать триггер при обновлении семи таблиц путем импорта из csv?

+0

Пожалуйста, точный, что такое «экспорт из»? Вы имеете в виду импорт данных здесь? – vyegorov

+0

@vyegorov да импорт из csv только. – Nava

ответ

1

Не создавайте таблицу, создавайте представление, которое выбирает из этих таблиц.

create or replace view all_product_ids 
as 
select product_id 
from t1 
union 
select product_id 
from t2 
union 
... you get the picture ... 

После того, как вы это сделали, подумайте о своей модели базы данных. По маленькой информации, которую вы предоставили, наверняка звучит так, как будто ваша модель не идеальна.

+0

Хорошая точка зрения вместо триггеров! – vyegorov

0

Взгляните на документацию PostgreSQL по адресу PL/pgSQL triggers, и особенно на this example, ваши действия похожи.

+0

да .. В этом примере даны триггерный метод для INSERT ON, UPDATE ON, DELETE ON запросов. Я буду использовать команду «copy table name from csvpath» для обновления таблиц. Так, как мы должны применять триггер логика для такого рода вставки? – Nava

+0

@saravana, 'COPY' фактически вставляет данные массовым способом. – vyegorov

Смежные вопросы