Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2013, 10:39
Avatar de lucho2000
lucho2000
 
Fecha de Ingreso: mayo-2012
Mensajes: 38
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Problema Substr Trigger

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.