高效发现和解决insert字段长度不够的报错

       早上发现执行的PostgreSQL 存储过程报错,错误如下: 300-value too long for type character varying(100),一看就是表字段的长度太小,从提示看是,字段是varchar(100)的字段长度不够。看了具体表:

 看了表字段,有好多个字段是varcahr(100): 如下图: 

     

                

    这么多字段varchar(100), 我改那个字段,怎么处理。一个一个试和改?,出错存储过程也就如下:  

        类似语句: INSERT INTO a select  a,b,c from ......

  怎么处理:

       1,要么一个一个字段排除,太花时间,改一个就测试一下,最终找到这个超长的字段

       2,  要么在select 语句中,使用length(字段),检查一下字段,看看哪个字段超过了100长度。

  上面2个办法,都可行,但太花时间了,有没有效率更高效率的解决方法:

      和 PostgreSQL 中使用: create table a1  as (select  a,b,c from ......)    ,  生成一个新表。用这个新表和原有表的结构做对比,就可以发现不一样的情况。

     打开表设计器,copy新表的字段和旧表字段导:Beyond Compare 3进行文本对比

对比发现:

   origin_place在新表是150个字符,在原有表是100,发现就是这个字段有异常。修改origin_place 从varchar(100)改成varchar(200),重新执行存储过程就OK。

 问题解决,时间效率高。

 

posted @   zping  阅读(312)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
历史上的今天:
2022-12-31 济公活佛慈语集
点击右上角即可分享
微信分享提示