PostgreSQL: comparación de tablas

En PostgreSQL , hay varias formas de comparar dos tablas para encontrar la diferencia entre ellas. En este artículo, analizaremos las dos técnicas más utilizadas. 

1. Comparación utilizando los operadores EXCEPT y UNION

crear tabla foo bar insertar

CREATE TABLE foo (
    ID INT PRIMARY KEY,
    NAME VARCHAR (50)
);
INSERT INTO foo (ID, NAME)
VALUES
    (1, 'a'),
    (2, 'b');


CREATE TABLE bar (
    ID INT PRIMARY KEY,
    NAME VARCHAR (50)
);
INSERT INTO bar (ID, NAME)
VALUES
    (1, 'a'),
    (2, 'b');


barra de comida

barra de actualización

UPDATE bar
SET name = 'c'
WHERE
    id = 2;


Ahora nuestras tablas se ven a continuación:

psql table comparision

Foobar

SELECT
    ID,
    NAME,
    'not in bar' AS note
FROM
    foo
EXCEPT
    SELECT
        ID,
        NAME,
        'not in bar' AS note
    FROM
        bar;


Producción:

EXCEPTO foo bar barfoo

SELECT
    ID,
    NAME,
    'not in foo' AS note
FROM
    bar
EXCEPT
    SELECT
        ID,
        NAME,
        'not in foo' AS note
    FROM
        foo;

Producción:

comparing tables in psql

2. Comparación usando OUTER JOIN

OUTER JOIN se puede usar para comparar dos tablas de la siguiente manera:

SELECT
    id,
    name
FROM
    foo
FULL OUTER JOIN bar USING (id, name)
WHERE
    foo.id IS NULL
OR bar.id IS NULL;

Producción:

foo bar función CONTAR

SELECT
    COUNT (*)
FROM
    foo
FULL OUTER JOIN bar USING (id, name)
WHERE
    foo.id IS NULL
OR bar.id IS NULL;

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *