Я пишу приложение Node JS и должен выполнить UPDATE
и DELETE
запросы в одном и том же выражении, но DELETE
следует выполнять в другой таблице и только в том случае, если условие равняется определенному состоянию. Я не уверен в своем синтаксисе ... Вот что у меня есть:
UPDATE vm_log SET user_id_fk = (SELECT user_id FROM users WHERE username = ?), vm_state = ? WHERE vm_id = ?;
SET @vmState = ?;
IF @vmState = 'PERMANENT' THEN
DELETE FROM vm_ext_tracking WHERE vm_fk = ?;
END IF
Где ?
поставляются как параметры. Например, username = 'someUser'
, vm_state = 'ACTIVE'
или PERMANENT
, а vm_id - некоторое число: vm_id = 4303
. UPDATE
часть отлично работает отдельно, просто нужно добавить слой сложности с DELETE
. Я получаю сообщение об ошибке:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF @vmState = 'PERMANENT' THEN
DELETE FROM vm_ext_tracking WHERE vm_fk = 4303' at line 1