【POSTGRESQL】ORDER BY expressions must appear in select list

PostgreSQLで「ORDER BY expressions must appear in select list」ってエラーが発生した。

 

理由としては、SELECT  DISTINCT xxxxで重複しているIDがありながらもOrderbyで並びを指定した場合

SELECT DISTINCT 
col1.id ,col1.value  
FROM テーブル名 
ORDER BY col1.ORDER ASC

 

で、SELECTにOrder byで指定するカラムを追加した。

SELECT DISTINCT 
col1.id ,col1.value , col1.ORDER
FROM テーブル名 
ORDER BY col1.ORDER ASC

 

PostgreSQLでNULLのソート順位を指定する

NULLの値を前に持っていくのか後ろに持っていくのか指定できたらいいですよね?

そんな時は下記のパターンでPostgreSQLは指定できました。

・NULLを最初にする場合
ORDER BY カラム名 DESC NULLS FIRST

・NULLを最後にする場合
ORDER BY カラム名 DESC NULLS LAST

 

PostgreSQLのテーブルを空にする

PostgreSQLのテーブルの中身をぷちっとデータを空にしたいなって思っていて調べたら便利なクエリがありました。

テーブルを空にする方法

1.テーブルだけクリアする方法

truncate table 空にしたいテーブル名;

 

2.シーケンス番号もクリアしたい場合

truncate table 空にしたいテーブル名 restart identity

DELETEでぐりぐりしなくて良いので簡単です。

 

Fuelphpでも「truncate」の関数あったな・・・

PostgreSQLのバックアップとリストア方法

PostgreSQLのバックアップとリストア方法。忘れてしまうのでコマンドをメモ。

 

PostgreSQLのバックアップ

pg_dump バックアップDB名 > バックアップ先ファイル名

 

PostgreSQLのリストア

psql リストア先データベース < バックアップのファイル

 

Postgresのチューニングの簡易化

最近はPostgreSQLをメインDBとして利用していますが、チューニングってなんだかんだ面倒で適当にどうにかならないかなと思ってたら下記のような便利なツールがありました。

 

http://pgtune.leopard.in.ua/

 

 

DBバージョン、OSタイプ、 DBタイプ、 メモリ、コネクション数を入れるとおススメの値がでてきます。

 

pgtune

 

 

CentOS6にPostgreSQL9.4、phpPgAdminをインストールする

CentOS6にPostgreSQL、phpPgAdminをインストール方法をご紹介します。

※Centosはインストールされていて、インターネットに接続されている状態でご用意ください。

※SELinuxは無効にしてください。

 

PostgreSQL9.4のインストール

※インストール前に「yum update」でOSをアップデートしておいてください。

続きを読む CentOS6にPostgreSQL9.4、phpPgAdminをインストールする