У меня есть пользователь и таблица журнала. Я хочу продолжать добавлять новый журнал, и если имя пользователя не существует в пользователе, добавьте это тоже.
То, что у меня есть, будет вставлено в журнал, только если пользователь не существует. Если пользователь уже существует, журнал не добавляется.
Как я могу это исправить, чтобы заставить работать должным образом? Заранее спасибо.
CREATE TABLE user (
id serial NOT NULL,
name char(60) NOT NULL,
CONSTRAINT user_pk PRIMARY KEY (id),
CONSTRAINT user_un UNIQUE (name)
)
CREATE TABLE log (
id serial NOT NULL,
name_id int NOT NULL,
detail char(512) NULL,
CONSTRAINT detail_pk PRIMARY KEY (id),
CONSTRAINT detail_user_fk FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
моя попытка
with ins1 as (
insert into user (name)
values ('myname')
on conflict do nothing
returning id as user_id
)
insert into detail (user_id, detail)
select user_id, 'some detail' from ins1;
Следуя примеру из другого вопроса, я изменил ничего не делать на обновить, где false , но по-прежнему не вставляется журнал
with ins1 as (
insert into "user" (name)
values ('myuser')
on conflict (name) do update
set name = null where FALSE
returning id as user_id
)
insert into log (user_id, detail)
select user_id, 'some description' from ins1;