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:
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:
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