Tabela não atualiza o valor do tempo ?

CREATE TABLE nro_Racao (
nro_idracao INTEGER NOT NULL,
nro_data_validade DATE NOT NULL,
nro_tempo int not null,
nro_indicacao_porte VARCHAR(20) NOT NULL,
nro_faixa_etaria INTEGER NOT NULL,
nro_idproduto INTEGER NOT NULL,
nro_quantidade DOUBLE PRECISION NOT NULL,
PRIMARY KEY (nro_idracao),
FOREIGN KEY(nro_idproduto) REFERENCES nro_produto(nro_idproduto)
);

CREATE OR REPLACE FUNCTION calculatempo()
RETURNS trigger AS
$BODY$
DECLARE
v_nro_tempo INT;
data_validade DATE;
BEGIN
SELECT nro_data_validade INTO data_validade FROM nro_racao WHERE nro_idracao =
new.nro_idracao;
v_nro_tempo = ((data_validade-CURRENT_DATE)/365);
UPDATE nro_racao SET nro_tempo = v_nro_tempo WHERE nro_idracao = new.nro_idracao;
RETURN NULL;
END;
$BODY$
LANGUAGE ‘plpgsql’;

CREATE TRIGGER calcula_tempo
AFTER INSERT
ON nro_racao
FOR EACH ROW
EXECUTE PROCEDURE calculatempo();