Cordial saludo
Tengo la siguiente tabla:
create table prueba(nombre char(4));
A esa tabla le hice un trigger BEFORE INSERT para hacerle un substr al campo nombre:
CREATE OR REPLACE FUNCTION tr_before_prueba()
RETURNS trigger AS
$BODY$DECLARE
BEGIN
IF(TG_OP='INSERT') THEN
NEW.nombre = substr(NEW.nombre::text,0,3);
RETURN NEW;
END IF;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE TRIGGER tr_before_prueba
BEFORE INSERT
ON prueba
FOR EACH ROW
EXECUTE PROCEDURE tr_before_prueba();
Pero al hacer un insert como el siguiente:
insert into prueba(nombre)values('colombiaaaaa');
Me genera el siguiente error:
ERROR: el valor es demasiado largo para el tipo character(4)
No entiendo por que no hace el substr del trigger
Muchas Gracias a quien pueda ayudarme.