2016-04-20 146 views
1

我們使用的是使用Postgres 8的Redshift。
我需要比較(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

相關問題