У меня есть таблица foo
с ПК int id
,varchar state
table foo:
- int id
- varchar state
- int code1
- int code2
Я хочу сделать вставку sql, если запись еще не существует.
Чтобы завершить оператор вставки, мне нужно получить некоторую информацию с помощью выбора вставки.
На входе у меня есть:
id = 1, state = 'A'
Во вставке я должен заполнить другое поле значениями, полученными с помощью выбора вставки.
code1 and code2 where id = 1 (they are always the same for id = x)
Обычно я должен сделать:
1- выбор с where id=1 and state=1
, и если он не существует, мне придется выполнить вставку sql
2- если запись не существует, получить значения полей code1 and code2 when id=1
3- сделать вставку
Можно ли сделать все в одном запросе?
select * from foo where id=1 and state = 'A'
если уже не существует:
select code1,code2 from foo where id=1; #1,2
insert into foo(id, state, code1, code2) values (1,'A', 1, 2);
можно ли объединить в один запрос?
Спасибо