PostgreSQL вставить, если существует внешний ключ

Как вставить новую строку в таблицу со ссылкой на внешний ключ, только если внешний ключ (в данном случае модель) существует?

В настоящее время у меня есть следующее утверждение:

INSERT INTO furniture (model, type) VALUES (modelA, chair)

1 ответов


используйте SELECT, который ничего не возвращает, если FK не существует.

INSERT INTO furniture (model, type) 
select 'modelA', 'chair'
where exists (select * 
              from model 
              where model.model = 'modelA');

вы не сказали нам, что называется ссылочной таблицей. Я предположил, что это model - вам нужно настроить это на реальные имена.