由于原先数据库基于mysql, 后转成postgresql,虽然转中出现一些问题,但是总算解决了,现在面对的就是在原先基于mysql的基础上更新相关的查询语句,比方说用户信息表包含ID,Name,Role,原先在mysql中写“select id,name,role from userinfo"就一切ok,也不用关心字段大小写,可是这句当在asp.net中用npgsql组件连接postgresql执行这个简单的sql就会报错说是column id not exist,请问达人该如何解决了?baidu和google说是加上双引号,但是不知道我即使写成"ID","NAME","ROLE"仍然会报column ** not exist!

解决方案 »

  1.   

    规则是:不加引号,所有对象名都转化成小写,除非加了引号.如果你要不关心大小写,建表的时候就不要加引号,一次你加了引号,以后每次都要加
    所以你应该是"ID","Name","Role",一个字母都不能差建议在建表的时候不要加引号, 有些工具会自动给你加上引号,所以建表的时候全部用小写.
      

  2.   

    检查一下你表中的字段名到底是什么,直接用DESC  userinfo 贴出来。
    然后在字段名上加上双引号。
      

  3.   

    我是利用navicat进行导入导出的,有可能导入的时候自动加了.我重新导入再来看看,我一直以为是因为我用pgsql的关键字作列名导致的.