Задать вопрос
I7uoHep
@I7uoHep

Как сделать Insert при определенных условиях?

Привет всем.
Такой вопрос: как мне вставить значение в таблицу, в том случае, если для значения ключа2 нету другого ключа1
примерно такой запрос я составил, может поможет понять меня:
INSERT INTO `tickets` (usteamid, game, date) VALUES (ключ1, ключ2, NOW()) IF (SELECT ключ1 FROM `tickets` WHERE game = ключ2)
  • Вопрос задан
  • 266 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
wladyspb
@wladyspb
Программист
Стоит разделить на два запроса и описать логику в php (или в чём вы пишете)
Ответ написан
@ollisso
1. Можно реализовать через процедуры
2. можно реализвоать через уникальный ключ (UNIQUE KEY) и insert ignore

Т.е. я понял что вам нужно вставить строку только если строки с ключом game=ключ2 нету.

ну тогда и делайте game =ключ2 уникальным ключом, и добавляйте через insert ignore into tickets ...
Если ключа нет - то он вставится. Если есть - то строка будет пропущена.
Ответ написан
> мне нужно сделать так, что бы вставляло только в том случае, если для ключ2 не было дубликатов ключа1, а если ключ2 разные, то дубликаты ключа1 допускаются

делайте лучше одним запросом попытку найти комбинацию ключ1 и ключ2, вторым - добавление. Ну или можно положиться на constraint-ы, и просто сделать пару (ключ1, ключ2) нормальным первичным ключом - тогда мускул пошлет вас при попытке вставить второй такой же. Обратите внимание - ключом должна быть именно пара, а не два уникальных ключа по отдельности.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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