SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.10.2022 11:18:46

bromble
Участник
Зарегистрирован: 20.10.2022
Сообщений: 1

Если есть - обновить, если нету - создать

Всем доброго дня!
Создаю запрос на sql, который должен либо обновлять сегодняшнюю запись, либо создавать её, в зависимости от того существует она или нет.

Хочу проконсультироваться с чем связана ошибка и насколько корректно условие отбора запись date_of_click=CONVERT (date, GETDATE())

Текущая таблица:
https://pastenow.ru/dd7c4e90bfd7e1f93cf0f164ba6b4955
см. скриншот 1

Код запроса:

IF EXISTS(SELECT * FROM csct_game WHERE id_user=89 AND id_employee_card=4 AND date_of_click=CURRENT_DATE())
    BEGIN
        UPDATE csct_game SET
                id_fst_track=1,
                id_snd_track=1,
                id_trd_track=1,
                id_fth_track=1
            WHERE
                id_user=89 AND
                id_employee_card=4 AND
                date_of_click=CURRENT_DATE()
    END
ELSE
    BEGIN
        INSERT INTO csct_game
        (id_user, id_employee_card, id_fst_track, id_snd_track, id_trd_track, id_fth_track,date_of_click)
        VALUES (89,4,1,1,1,1, CURRENT_DATE())
    END


Собственно ошибка:
https://pastenow.ru/6791c987461d4ff3bc3378916b68681e
см. скриншот 2

Отредактированно bromble (20.10.2022 11:21:15)


Прикрепленные файлы:
Attachment Icon Screenshot_1.png, Размер: 4,592 байт, Скачано: 9

Неактивен

 

#2 22.10.2022 01:20:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5788

Re: Если есть - обновить, если нету - создать

оператор if .. end if в отличии от функции if() можно использовать только внутри хранимого кода (процедуры, триггеры, ..)

Неактивен

 

#3 22.10.2022 17:59:08

estic
Участник
Зарегистрирован: 01.10.2022
Сообщений: 13

Re: Если есть - обновить, если нету - создать

Знаете про INSERT ... ON DUPLICATE KEY UPDATE?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson