2015-08-22 5 views
-1

У меня есть две таблицы, которые имеют одинаковые поля. Я хочу сравнить каждое поле одной таблицы с полями другой таблицы и сообщить о любых различиях в данных.Postgres: Сравните все поля из двух таблиц и отчитайте разницу

Я хотел бы сделать это динамически, не имея необходимости жестко закодировать имя полей в моем запросе. Возможно ли это, или я должен найти решение этого с помощью Python?

Пример таблиц:

 TABLE 1     TABLE 2 
FIELD1 : VALUE1   FIELD1 : VALUE1 
FIELD2 : VALUE2   FIELD2 : VALUE2 
FIELD3 : VALUE3   FIELD3 : VALUE3xxx 

Запрос проходит через все поля, а затем говорит «ха» Field3 не совпадают, то я должен показать это для конечного пользователя»

+0

Обычно мы спрашиваем, что вы * поиск схожих или одинаковых ответов, прежде чем отправлять *. Google - тоже хорошая идея. В этом случае быстрый поиск находит http://pgfoundry.org/projects/pg-comparator/ ... –

ответ

0

Вы должны создать Dinamic Sql и поместить его внутри функции

Dynamic sql in postgres

для начала вам нужно contruct SQL-сравнить имя поля

И чтобы получить имена полей таблиц

select column_name from information_schema.columns where 
table_name='table 1'; 
+0

Да, мне нужно прочитать динамический SQL. Я начал подходить к решению моей маленькой проблемы, используя Python. Если он станет слишком грязным/грязным, я его отброшу. Благодарим вас за указатель. Динамический SQL - хорошая тема для изучения, и я забыл, что он даже существует. –

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