pgsql數據庫的坑點記錄

一、背景

pgsql數據庫呢我也是第一次用,由於公司項目需要使用這個數據庫對項目進行開發,所以我這裏記錄一下我第一次使用這個庫的所有坑點,有幾個坑點讓我項目幾乎重構一遍。所以也是寫該文章提醒小白使用前的主要事項,我這裏的坑點肯定是有辦法解決的,最近還沒有仔細在網上查找方案。

二、情況問題

1、id自增沒有mysql那麼簡單就可以進行設置,這裏我要說的是這個庫對id自增這塊做的有點類似於oracle,需要自己構建一個序列,然後讓字段指定序列之後,纔可以實現自增。具體方式如下:

我現在有一個user表,那麼我的序列開始構建

CREATE SEQUENCE public.user_id_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE public.user_id_seq
  OWNER TO postgres;

這就是構建序列的sql語句,如果大家複製的話需要注意的是postgres是庫名,注意修改,不然肯定報錯。user_id_seq是你自己定義的名字可以自己隨便取,但是等會你要用的時候要記得。下面我們去id那裏指定。

注意我紅色部分,在這指定剛剛自己定義的序列就可以實現id自增了,所以我說這個是比較麻煩的點。

2、查詢分頁的注意事項,這裏就比oracle數據庫又好了一點,起碼它還是有limit  這種sql語句可以使用的,下面是我寫分頁的示例

SELECT * FROM user limit  2  offset  1;

剛開始我百度出來這種語句還挺開心的,以爲和mysql一樣使用就行了,結果,哈哈又想多了,這裏我們需要注意的是前面是數字2代表這一頁查詢多少數據,後面數字1代表的居然是從本表中的第幾個數據開始查詢,而不是mysql一樣第幾頁開始,如果要第幾頁開始要1*2然後再查,下面是改造之後的sql請注意。

SELECT * FROM user limit  2  offset  1*2;

反正這裏可能一下也說不清楚,反正到時候如果小白自己遇到可能需要自己領悟一下,解決起來也不是很麻煩。

3、使用mybatis框架時表字段的下劃線問題,這纔是最坑的點,如果我們表字段取名使用了下劃線,在庫裏面一點問題沒有,sql語句也執行正常,但是我們用到了mybatis對項目開發的時候,我們的xml文件無論怎麼寫,都是查找不出這條數據的,這裏也是我項目中遇到的最大的坑點,簡直吐槽,我也沒有找到合適的解決方案,希望知道的大神聯繫我分享下經驗。本次開發項目的解決辦法是表重新改了字段名字,取名全部修改,然後對項目重新整理代碼,總之和我重新寫過一次一樣,坑點簡直加班加點改。

三、總結

對於這個剛接觸的數據庫,其實我的想法是按照我原來的技術進行分析使用,對比了mysql和oracle的使用方式,找出不同點和類似點,然後直接使用,當然這樣確實很方便,但有時候我們不要有想當然,畢竟是不同的產品肯定是有不一樣的特點的,使用的時候我就是太想當然了,所以沒有全面的瞭解這個庫就開始對項目進行開發了,以至於在過程中遇到的問題解決起來都比較麻煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章