Soy nuevo con PostgreSQL, y ya tengo mi primer problema ..PostgreSQL "SI" error de sintaxis
me escribió algo de código para entender cómo funcionan las transacciones, siguiendo el manual paso a paso.
Para abreviar, he creado 2 tablas, usuarios y movimientos: en la primera están las columnas de nombre, correo electrónico y crédito, en la segunda las columnas desde, hacia, importar.
Por lo tanto, yo estaba tratando de esta manera:
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;
Siempre sale el error:
ERROR: syntax error at or near "IF"
¿Dónde estoy equivocado?
PD: no se centran en la funcionalidad ejemplo, es sólo una prueba para mí entender las transacciones .. y ahora, la cláusula IF ...
He agregado el código de muestra, a petición suya. Esto debería ayudarte. :-) – pyrocumulus
Use una restricción de verificación, entonces no necesita esta construcción. –
@frank: estaba intentando aprender trabajos de transacciones calientes, es solo un ejemplo;) – Strae