私は、PostgreSQLとの新たなんだ、と私はすでに私の最初の問題を抱えている。..PostgreSQLの構文エラー
「IF」私はトランザクションがステップによる手動ステップ以下、どのように機能するかを理解するためにいくつかのコードを書きました。
簡潔にするために、私は2つのテーブル、ユーザーとムーブメントを作成しました。最初のものには名前、電子メール、クレジットの列があり、2番目の列はfrom、to、importです。
ERROR: syntax error at or near "IF"
私が間違っています:私は常にエラーを取得
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;
:
だから、私はこの方法を試したのですか?
PS:例の機能に焦点を当ててはいけない、それは...私が取引を理解するためだけの裁判だと今、IF句...
ご要望により、サンプルコードを追加しました。これはあなたを助けるべきです。 :-) – pyrocumulus
チェック制約を使用すると、この構造は必要ありません。 –
@frank:私はホットトランザクションの仕事を学ぼうとしていました、それは単なる例です;) – Strae