sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man jämför två scheman i PostgreSQL

Ibland kan du behöva jämföra två scheman i PostgreSQL. Du kan använda en SQL-fråga för att åstadkomma detta, eller använda ett av de många tredjepartsverktyg som låter dig jämföra två scheman i PostgreSQL. I den här artikeln kommer vi att titta på båda sätten att jämföra två scheman i PostgreSQL.


Hur man jämför två scheman i PostgreSQL

Vi kommer att titta på två sätt att jämföra två scheman i PostgreSQL – med hjälp av SQL-frågor och med pgAdmin.


Jämför två scheman med SQL

Här är SQL-frågan för att jämföra två scheman. Ersätt schema1 och schema2 med namnen på två scheman som du vill jämföra.

select COALESCE(c1.table_name, c2.table_name) as table_name,
       COALESCE(c1.column_name, c2.column_name) as table_column,
       c1.column_name as schema1,
       c2.column_name as schema2
from
    (select table_name,
            column_name
     from information_schema.columns c
     where c.table_schema = 'schema1') c1
full join
         (select table_name,
                 column_name
          from information_schema.columns c
          where c.table_schema = 'schema2') c2
on c1.table_name = c2.table_name and c1.column_name = c2.column_name
where c1.column_name is null
      or c2.column_name is null
order by table_name,
         table_column;

Ovanstående fråga listar i princip alla rader som finns i ettdera schemat med information om dess närvaro/frånvaro i det andra schemat.

  • tabellnamn – Namnet på tabellen som finns i schema1 eller schema2
  • tabellkolumn – namn på kolumn som finns i schema1 eller schema2
  • schema1 – om kolumnen finns i schema1 visas dess namn, annars är den null.
  • schema2 – om kolumnen finns i schema2 visas dess namn, annars är det null.


Jämför två scheman i pgAdmin

Vi kommer att använda Schema Diff funktion i pgAdmin för att jämföra scheman eller databaser eller andra objekt.

Schema diff-verktyget låter dig spåra skillnaden mellan två databasobjekt och lista de olika SQL-satserna för att synkronisera databaser.

Observera dock att käll- och målservrarna bör vara av samma huvudserverversion.

Här är stegen för att jämföra två scheman med verktyget Schema Diff.

1. Klicka på Schema Diff alternativ under Verktyg meny.

2. Du kommer att se ett formulär där du måste välja Källa och Mål

3. Välj serverversioner, käll- och målservrar och databas/schema beroende på dina krav.

4. Klicka på Jämför för att jämföra två databaser/scheman. Du kommer att se en detaljerad lista över objektjämförelseresultat, följt av DDL-jämförelseresultat

5. Objektjämförelseresultatet presenteras som ett träd som du kan klicka på för att expandera/komprimera.

6. DDL-jämförelseresultat presenteras i 3 paneler. I den vänstra panelen hittar du SQL-frågor för källschema. I mittpanelen har du SQL-satserna för målschema. Och i den högra panelen hittar du skillnaden mellan SQL-satser för två scheman.

7. Du hittar många alternativ för att förfina jämförelseresultat som frågeredigerare, skriptgenerator och filter.


pgAdmin Schema diff är mycket mer omfattande än SQL-baserad schemajämförelse och rekommenderas starkt. Förhoppningsvis hjälper den här artikeln dig att jämföra två scheman i PostgreSQL.

Ubiq gör det enkelt att visualisera data och övervaka dem i realtidsinstrumentpaneler. Prova Ubiq gratis.

  1. 3 sätt att returnera tidszonen från ett Datetime-värde i Oracle

  2. Hur får jag ett Oracle SCHEMA som DDL-skript med DBMS_METADATA (och SCHEMA_EXPORT)

  3. Hur LEFT()-funktionen fungerar i SQL Server (T-SQL)

  4. En rapports egenskaper