我有两张桌子
表1:
CREATE TABLE public.my_line
(
id bigint NOT NULL,
geom geometry,
name character varying(254) COLLATE pg_catalog."default",
CONSTRAINT my_line_pkey PRIMARY KEY (id)
)
表2:
CREATE TABLE public.ligne
(
id integer NOT NULL DEFAULT nextval('ligne_id_seq'::regclass),
name text COLLATE pg_catalog."default",
geom geometry,
CONSTRAINT ligne_pkey PRIMARY KEY (id)
)
我用第一个更新第二个,像这样:
update ligne set
name = my_line.name
from my_line
where ligne.id = my_line.id
它运行良好,但我想要做的是只能更新两个表之间差异的行。如果你有一个想法在我身上。 热忱。
答案 0 :(得分:1)
您需要检查WHERE
子句中它们是否不同。试试这样:
UPDATE ligne
SET name = my_line.name
FROM my_line
WHERE ligne.id = my_line.id
AND ligne.name <> my_line.name
-- and whatever else you want to check for