Postgre細節問題彙總(持續更新)

Postgre Sql 細節問題彙總

  • 問題1

        表中有個別字段名字是關鍵字,如value、key等關鍵字,致使不能用sql語句操做數據庫。sql

      解決方案:這個因數據庫類型不一樣而各有所異。一種是在這個字段名上加中括號[],如[key];另外一種是加上雙引號"",如"key";數據庫

  • 問題2

       單引號''和雙引號「」的區別post

insert into test.column_key_tb (id,key,value,extra_info) values(2,"hello",'world','program starts!');//出錯

      解決方案:是由於雙引號會被識別爲字段名,而單引號纔是表示一個字符串。因此,把「hello」改成'hello'測試

  • 問題3

    ibatis+postgre中,插入一條記錄時返回該記錄在數據庫中的id。spa

    解決方案:根據網上資料,有兩種說法能夠實現。postgresql

    第一種以下,可是親自測試了後(個人ibatis版本是2.0),發現不識別屬性keyProperty和屬性useGenerateKeys。code

<insert id="xxx" parameterType="map" keyProperty="id" useGeneratedKeys="true">
    insert xxxx 
 </insert>

    第二種以下:這種能夠實現,能識別屬性,而且利用序列來返回最新序列號,也就是剛剛插入那條記錄的id。索引

<selectKey resultClass="Integer" keyProperty="id">  
     	SELECT currval('testtb_id_seq') as id;  
</selectKey>
  • 問題4

    查看Postgresql安裝下面的base文件夾的數字命名文件夾對應於哪一個數據庫。採用以下命令:字符串

 select *,oid  from pg_database;

直接在postgresql 的SQL Shell中輸入上面命令,便可查看數據庫對應數字文件夾,其中OID就是對應數字文件夾。io

  • 問題5

     建立索引時,若是表名是關鍵字,那麼須要給表名加上雙引號「」,如location是關鍵字,那麼寫法以下:

create index FK_xxxx on "location" (ins_fk) ;
相關文章
相關標籤/搜索