Postgresql - 即使值太长也会更新列

时间:2015-01-16 12:53:01

标签: sql postgresql postgresql-9.2

我有这个问题:

begin    
    update res_partner_address rpa
    set name = rp.name
    from res_partner rp
    where rpa.partner_id = rp.id
    and rpa.name is NULL
end;

当我尝试更新该列时,出现此错误:

ERROR:  value too long for type character varying(64)

因此namerp.name的最大长度不同。有没有办法将值截断为name的长度,所以我还是可以更新它?

1 个答案:

答案 0 :(得分:5)

只需使用res_partner表中的前64个字符:

update res_partner_address rpa
  set name = left(rp.name,64)
from res_partner rp
where rpa.partner_id = rp.id
and rpa.name is NULL