Я новичок в PostgreSQL, и у меня уже есть первая проблема.
Я написал некоторый код, чтобы понять, как работают транзакции, следуя инструкции вручную.
Чтобы сделать это коротко, я создал 2 таблицы, пользователя и движения: в первом столбце имя, адрес электронной почты и кредит, во втором столбцы from, to, import.
Итак, я пробовал вот так:
BEGIN;
INSERT INTO movements (from, to, import) VALUES ('mary', 'steve', 600);
UPDATE users SET credit = credit - 600 WHERE name = 'mary';
UPDATE users SET credit = credit + 600 WHERE name = 'steve';
--here comes the problem!
IF (SELECT credit FROM users WHERE name = 'mary') < 0 THEN
ROLLBACK;
END IF
COMMIT;
Я всегда получаю ошибку:
ОШИБКА: синтаксическая ошибка в или рядом с "IF"
Где я ошибаюсь?
P.S.: Не сосредотачивайтесь на функциональности примера, это просто пробная версия для меня, чтобы понять транзакции.. и теперь предложение IF...