zoukankan      html  css  js  c++  java
  • 【转】PostgreSQL中表名、字段名大小写问题

     学习hibernate的时候,数据库用了PostgreSQL,第一节课就抛错,User实体映射没有死活不能导出表。总是提示这一句:

             ERROR: syntax error at or near "User"。

            后来发现,如果把表名设成t_user这样的就行了,难道PostgreSQL不能用大写?又试试T_User,没有报错,到数据库里一看,哎?还是t_user!大写自动变小写了。PostgreSQL不识别大小写?用pgAdmin图形化界面创建一个User表完全没问题啊。之后又试验了一下表中的字段,发现也是这个问题,总是提示ERROR: syntax error at or near "…"

            来在看pgAdmin的SQL窗口时突然发现(很多时候仔细观察真的很重要啊),有大写的地方都加了双引号
             

            哦,突然开窍了,不是不识别大小写,奥秘原来在双引号上。

           先用SQL语句试试建立一个名字都是大写字母的表,记得表名加上双引号,运行无错误,成功!
           Hibernate例子中有两种解决办法,一种呢,就是表名用小写,另一种就是大写的加双引号,当然,这时候你会问,俩双引号也不行啊,用转义符号呗。


          JPA例子中:

             



    小结:

    1. PostgreSQL对表名、字段名都是区分大小写的。在图形化界面可以正常新建。用SQL语句的时候需要加双引号,如果jdbc查询等处,记得使用转义符号。
    2. PostgreSQL在SQL语句中对大小写是不敏感的

    select ID from t_user  和 select id from t_user


    都会从t_user这个表中查询id这个字段。如果要查询大写字母的字段,同样要加上双引号:select "ID" from t_user

  • 相关阅读:
    Study Plan The TwentySecond Day
    Study Plan The Nineteenth Day
    Study Plan The TwentySeventh Day
    Study Plan The Twentieth Day
    Study Plan The TwentyFirst Day
    python实现进程的三种方式及其区别
    yum makecache
    JSONPath 表达式的使用
    oracle执行cmd的实现方法
    php daodb插入、更新与删除数据
  • 原文地址:https://www.cnblogs.com/WZH75171992/p/7267044.html
Copyright © 2011-2022 走看看