2016-04-20 2 views
1

Мы используем Redshift, который использует Postgres 8.
Мне нужно сравнить (2) таблицы, которые будут почти идентичны, но в другой таблице будут дополнительные столбцы, Мне нужно выяснить разницу в столбцах.postgresql - получить список разностей столбцов между двумя таблицами

Пример:

CREATE TABLE table1 (
    v_id character varying(255) NOT NULL, 
    v_created timestamp without time zone NOT NULL, 
    abc_102 boolean, 
    abc_103 boolean, 
    abc_104 boolean, 
    def_56 boolean DEFAULT false NOT NULL, 
    def_57 boolean DEFAULT false NOT NULL 
) 

CREATE TABLE table2 (
    v_id character varying(255) NOT NULL, 
    v_created timestamp without time zone NOT NULL, 
    abc_102 boolean, 
    abc_103 boolean, 
    abc_104 boolean, 
    abc_105 boolean, 
    def_56 boolean DEFAULT false NOT NULL, 
    def_57 boolean DEFAULT false NOT NULL, 
    def_58 boolean DEFAULT false NOT NULL, 
) 

Что запрос я могу использовать, что даст мне список различий столбцов?

ответ

1

Вы можете достичь этого путем выбора всех имен столбцов из table2, которые делают не также появляются в table1:

SELECT column_name 
FROM information_schema.columns 
WHERE table_schema = 'your_schema' AND table_name = 'table2' 
    AND column_name NOT IN 
    (
     SELECT column_name 
     FROM information_schema.columns 
     WHERE table_schema = 'your_schema' AND table_name = 'table1' 
    ) 
+0

Это работает для меня. Спасибо. – noober

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