MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:

2017年11月20日 星期一

Oracle MERGE INTO 語法在 Postgres 的改寫方式

在 SQL 語言裡面,資料的輸入(INSERT)和更新(UPDATE)是不一樣的作業,要是對非重複欄位再輸入會發生失敗,整個交易作業都會取消。

所謂的 Upsert 功能用來進行資料衝突判斷,決定資料要新增還是更新,簡單的避開上述困擾。在 Postgres 9.5 之後,引入了 Upsert 功能,INSERT . . . ON CONFLICT DO . . .,可以達成上述功能。PGSQL 的 Upsert 把資料先嘗試以 INSERT 塞入表格,發生衝突時才進行更新或略過資料。

而在 Oracle 資料庫的 Merge 功能,與 Upsert 有一點點小差別:MERGE INTO 是一次以多筆資料塞入表格。資料併入表格的方法以輸入或更新二選一的方式,而非先進行輸入失敗才更新

這裡紀錄 Oracle MERGE INTO 轉換成 PGSQL INSERT ON CONFLICT 的筆記。

2017年11月17日 星期五

PostgreSQL 裡面的時區設定使用筆記

PostgreSQL 的時區,內建預設是 GMT。不過時區會在 initdb 時,根據作業系統設定值決定,然後設定在 $PGDATA/postgesql.conf 裡面的 GUC 參數 timezone 上。而可以設置的時區資訊則紀錄在 pg_timezone_names 這個系統表裡面。

下面在 CentOS 底下,在 OS 和 DB 中,列舉這些資訊出來作比較

2017年11月13日 星期一

LinuX Container on Slackware 14.2 練習筆記 - 建立 Container

這一陣子,Docker Container 很紅,好像是因為比起跑 Virtual Machine 吃的資源更少一些。又聽說 Docker 原先是 Linux Container 衍生的。再聽說後來 Docker 不只支援 Liunx Container(看到好像主要有 libcontainer, LXC, OpenVZ, systemd-nspawn, libvirt-lxc, libvirt-sandbox, qemu/kvm, BSD Jails, Solaris Zones, chroot 這一堆詞)。所以跟跟風,也來看看怎麼用 Container~
Container 功能,我最先知道的就是 Linux Container(LXC)。目前對 LXC的認識不多,我目前假裝理解成是 chroot 的衍生物,Docker 前驅物。
以前曾經用過 chroot 把 MBR 被蓋掉的 Slackware Linux 給弄回來,大概知道 chroot 的用途。
現在練習一下 Linux Container,操作後的感想:有一點把 Linux Container 當成是 chroot 來看待。