У меня возникли проблемы с созданием этого триггера в PostgreSQL 8.4.Исключение триггера PostgreSQL
CREATE OR REPLACE FUNCTION tbi_Usuarios() RETURNS TRIGGER AS $tbi_Usuarios$
BEGIN
IF trim(both ' ' from NEW.Nombre_usuario) = '' OR NEW.Nombre_usuario IS NULL THEN
RAISE EXCEPTION 'Debes ingresar un nombre de usuario.';
END IF;
IF NEW.Password = '' OR NEW.Password IS NULL THEN
RAISE EXCEPTION 'Debes ingresar una contraseña correctamente';
ELSE
NEW.Password := md5(NEW.Password);
END IF;
IF Fecha_registro IS NULL THEN
NEW.Fecha_registro := current_timestamp;
END IF;
RETURN NEW;
END;
$tbi_Usuarios$ LANGUAGE plpgsql;
DROP TRIGGER IF EXISTS tr_tbi_Usuarios ON "Usuarios";
CREATE TRIGGER tr_tbi_Usuarios BEFORE INSERT ON "Usuarios"
FOR EACH ROW EXECUTE PROCEDURE tbi_Usuarios();
Дело в том, что, когда я пытаюсь вставить строку в базу данных, следующее сообщение об ошибке появляется:
"el registro <<new>> no tiene un campo <<nombre_usuario>>"
или на английском языке:
"the table <<new>> doesn't have a column <<nombre_usuario>>"
Но в моем база данных, я ДЕЙСТВИТЕЛЬНО уверен, что столбцы Nombre_usuario
, Password
, Fecha_registro
есть!
Может ли кто-нибудь мне помочь?
Спасибо! Это сработало! – KGs