技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的な技術メモを残しているブログです。Qiitaの記事にするほどでもない細かいネタを投稿します。

PostgreSQL

SQL中のVALUES

SELECT句が使える場所ならどこでもVALUESが使えるとのこと。 -- select 1,'one' union select 2,'two' union select 3,'three'と等価 postgres=# VALUES (1, 'one'), (2, 'two'), (3, 'three'); column1 | column2 ---------+--------- 1 | one 2 | two 3 | …

psqlのバックスラッシュコマンドで実行されているSQLを確認する

-Eオプション付きでpsql を起動すると、バックスラッシュコマンドの裏で実行されるSQLを確認できる。 $ psql -E psql (9.1.14) "help" でヘルプを表示します. bill=# \dn ********* クエリー ********** SELECT n.nspname AS "Name", pg_catalog.pg_get_user…

データを16進でダンプする

trimで消えない謎のスペースがあって、何なのか16進で見たいのでやり方を調べた。 select encode(name::bytea, 'hex') from human; これで調べたら, C2A0が入っていることが分かった。 HTMLで ってのはよく使うけど、これは文字コードのNBSP。 アプリの…

列の型をDateからVARCHARに変更する

またいつか必要かもしれないのでメモ。 ALTER TABLE table_name ALTER COLUMN column_name TYPE VARCHAR(8) USING CASE WHEN column_name IS null THEN null ELSE TO_CHAR(column_name, 'YYYYMMDD') END; USINGで条件分けをするパターンは他でも使えそう。

postgreSQLに接続するシェルのテンプレート

個人的メモ。 たくさんのDBにまとめて同じSQLを実行するテンプレート。 SQLをヒアドキュメントで書くようにしてるけど、長くなるようだったら外出しにしよう。 #!/bin/sh #DBサーバとインスタンスの指定 SETTINGS=("dbserv01 db01" "dbserv01 db02" "dbserv0…

psqlでデフォルトのスキーマを指定する

同じスキーマしか使わないのに毎回スキーマ指定するのがダルいので調べてみた。 まずは現在値の確認。 mydb=> show search_path; search_path ---------------- "$user",public (1 行) 何もいじってないのでデフォルト値が表示される。 スキーマ名を指定しな…