私はPostgreSQLを初めて使用し、すでに最初の問題を抱えています..
手動の手順に従って、トランザクションがどのように機能するかを理解するためのコードをいくつか書きました。
簡単に言うと、ユーザーと動きの 2 つのテーブルを作成しました。最初のテーブルには名前、メール、クレジットの列があり、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" またはその近くで構文エラーが発生しました
どこが間違っていますか?
PS: 例の機能に焦点を当てないでください。これは、トランザクションを理解するための単なる試行です..そして今、IF 句...