@phpcoder81

Как соединить два запроса (INSERT, IF) в один?

Перед ставкой строки, нужно проверить, например количество строк в таблице (или любой друой SELECT). Если их более 10, то добавить запись. Обычно такие задачи делаем двумя отдельными запросами в рамках одного PHP скрипта. Вопрос. Можно ли это как-то соединить в один запрос?
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Можно воспользоваться insert .. select. Если select даст 0 строк - то это валидный запрос, который ничего не вставит в таблицу.
insert into tablename (field1, field2)
select 'const1', 'const2'
from (select null) dummyonerowtable
where not exists(select 1 from anothertable where ... limit 1 offset 9) -- и нет 10 строки по какому-то критерию


Фокусы сложнее - через хранимки. Только mysql и хранимки... Лучше выберите что-то одно из них и не смешивайте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы