create table customers (
id serial,
email text,
name text,
created_at timestamp default current_timestamp,
primary key (id),
unique (email)
);
insert into customers (name, email) values
('Jonh', 'j.brown@gmail.com'),
('Sarah White', 'sarah_white@yahoo.com');
create table leads (
id serial,
email text,
name text,
created_at timestamp default current_timestamp
);
insert into leads (name, email) values
('Jonh Brown', 'j.brown@gmail.com'),
('Mike Finkel', 'mf@mns.com');
MERGE INTO customers AS c
USING leads AS l
ON c.email = l.email
WHEN NOT MATCHED THEN
insert (name, email, created_at)
values (l.email, l.name, DEFAULT)
WHEN MATCHED THEN UPDATE
SET name = l.name
;
/*
insert into customers (name, email)
select name, email from leads
on conflict (email) do nothing;
*/
select * from customers;