2016-08-30 5 views
3

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

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

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

'... WHERE EXISTS (SELECT * FROM models WHERE model = modelA)' – joop

ответ

3

Используйте ВЫБРАТЬ, который не возвращает ничего, если FK не существует.

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

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

Смежные вопросы