MySQL Workbench - «+» недействителен в этой позиции для этой версии сервера

Я работаю над тем, чтобы научиться создавать триггеры в SQL, используя MySQL workbench и сервер MySQL. Предполагается, что триггер обновляет баланс клиента в таблице CUSTOMER, когда в таблицу INVOICE вводится новый счет. У меня есть следующий код:

CREATE TRIGGER trg_updatecustbalance
AFTER INSERT ON INVOICE
FOR EACH ROW
BEGIN
    UPDATE CUSTOMER
    SET CUST_BALANCE = CUST_BALANCE + :NEW.INVOICE_AMOUNT
    WHERE CUST_NUM = :NEW.CUST_NUM
END;

Насколько я могу судить, все для этого триггера настроено правильно, но я получаю сообщение об ошибке на «+» в SET CUST_BALANCE = CUST_BALANCE + :NEW.INVOICE_AMOUNT. Я не смог найти в Интернете ничего, что говорило бы о том, почему я получаю эту конкретную ошибку.

Ваша помощь очень ценится!

Я ожидал, что вы получите сообщение об ошибке из-за :s перед NEW.

Nick 15.03.2019 05:11

@Nick Я следил за учебным пособием, которое я нашел в Интернете, в котором перед NEW стояло двоеточие. Когда я убираю двоеточие, я получаю сообщение об ошибке END с надписью «Ожидается ';' но вместо этого нашел END."

ekelly1105 15.03.2019 05:14

Да, вам нужен ; в конце утверждения UPDATE, то есть WHERE CUST_NUM = NEW.CUST_NUM;. Обратите внимание, что вы можете столкнуться с проблемой с разделителями, требующими использования DELIMITER $$ или аналогичного, прежде чем пытаться определить триггер.

Nick 15.03.2019 05:18

Потрясающий! Большое спасибо. Я добавил разделитель $$, а затем добавил точку с запятой в конце оператора обновления, и теперь он работает. Спасибо за вашу помощь!

ekelly1105 15.03.2019 05:20

Здорово. Рад, что смог помочь.

Nick 15.03.2019 05:21

@nick, вы должны опубликовать свое решение в качестве ответа, и ekelly должен принять это. Вот как работает репутация StackOverflow.

Mike Lischke 15.03.2019 08:48

@MikeLischke Я проголосовал за закрытие как опечатку. Я не вижу, что этот вопрос может помочь кому-то еще. Лучше просто получить roomba'd

Nick 15.03.2019 09:25
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
7
430
0

Другие вопросы по теме