Я хотел бы знать, как я могу вставить что-то в свою базу данных ТОЛЬКО ЕСЛИ это соответствует определенным условиям. Я не хочу вставлять что-либо с несанкционированными значениями.
На самом деле я хотел бы сделать что-то вроде этого: (допустим, я хочу вставить новый заказ, только если он поступает от определенного типа клиентов)
INSERT INTO orders
(columns names)
VALUES (values)
WHERE orders.client_id IN (SELECT id FROM clients WHERE condition...)
(я знаю, что это невозможно, это для примера.)
Я пробовал это:
INSERT INTO orders
(columns names)
VALUES (values);
DELETE orders
WHERE orders.client_id NOT IN (SELECT id FROM clients WHERE condition...)
ORDER BY id DESC LIMIT 1
Кажется, это помогает. Но я не могу поверить, что это хорошее решение.
Итак, мой вопрос: Есть ли способ сделать это правильно, и в только один запрос?
(Я нашел много постов по темам, более или менее похожим на эту, но у большинства из них есть ответы с INSERT INTO ... SELECT ..., которые я не понимаю, и кажется не работает в моем случае.)