Sono nuovo con PostgreSQL, e ho già il mio primo problema ..PostgreSQL "IF" errore di sintassi
ho scritto il codice per capire come funzionano le transazioni, seguendo passo dopo passo manuale.
Per farla breve, ho creato 2 tabelle, utenti e movimenti: nella prima ci sono le colonne nome, email e credito, nella seconda le colonne da, a, importazione.
Così, ho cercato in questo modo:
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;
ottengo sempre l'errore:
ERROR: syntax error at or near "IF"
Dove mi sbaglio?
PS: non si concentrano sulla funzionalità ad esempio, è solo una prova per me capire le transazioni .. e ora, la clausola IF ...
Ho aggiunto codice di esempio, dalla vostra richiesta. Questo dovrebbe aiutarti. :-) – pyrocumulus
Utilizza un vincolo di controllo, quindi non hai bisogno di questa costruzione. –
@frank: stavo cercando di imparare le operazioni con le transazioni a caldo, questo è solo un esempio;) – Strae