PostgreSQL の COPY コマンドでデータインポートする際に、 NULL を扱う方法をメモ。 元データのフォーマットは TSV と CSV を想定。 データ投入先のテーブル 次のテーブルを考える。 各カラムは not null。 create table t( id integer, name text ); postgres=# \d t Table "public.t" Column | Type | Modifiers --------+---------+----------- id | integer | name | text | COPY コマンドのシンタックス COPY table_name [ ( column_name [, ...] ) ] FROM { 'filename' | STDIN } [ [ WITH ] ( option [, ...] ) ]
以前(pg_dumpで)バックアップしたファイルをリストアしようとしたが、 pgAdminIIIではリストア操作ができない(ファイルは指定できるがOKボタンが押せない)。 最初はバックアップとリストア時のバージョン(環境)の違いとも思ったが、 その場でpgAdminIIIからバックアップしたファイルですらリストアできなかったので 『なんじゃそりゃ』と嘆いていたところ、同じ問題挙げているWebPageを発見した。 LinuxからWindowsへのリストアについて -Linux版PostgreSQL7.Xからのバ- PostgreSQL | 教えて!goo 以下の対策方法を示す。 (1)コマンドプロンプトを開き、パスが通ってない場合は ../ポスグレインストールDir/binに移動する。 (2)対象のDatabaseにpsqlで接続する >psql -U postgres -h localho
前に JavaScript や PHP の日付関連処理のまとめを書いたところ、結構アクセスしてくる人が多かったので今度は PostgreSQL に関する日付関連処理についてまとめてみました。 SQLの場合いわゆる標準が決まっていますので、ここで述べている例は、なるべく標準に準拠した形になっています。なので、昔から PostgreSQL で使われていたやり方とは一部違うかもしれないです。 日付の単位について 基本的なことですが、一応まとめておきます。 1秒は1000ミリ秒 1分は60秒 1時間は60分 よって 1時間=60分=3600秒=3600000ミリ秒 1日=24時間=1440分=86400秒=86400000ミリ秒 日付/時刻のパース 日付/時刻を表したある書式の文字列から PostgreSQL の TIMESTAMP 型に変換します。 SELECT CAST('2008-
PostgreSQLで日付/時刻・時間を秒数として取得する方法をメモしておきます。 結構使う用途は多いのですが、マニュアルにもあんまり目立つようには書いてないので。。。 例えば、通常日付/時刻を取得すると次のような感じになると思います。 SELECT now(); now ——————————- 2007-07-08 23:14:47.843862+09 (1 row) で、これを秒数で取得するにはEXTRACT関数のEPOCHを使って次のようにします。 日付/時刻の場合、秒数は1970-01-01 00:00:00 からの秒数になります。 SELECT EXTRACT(EPOCH FROM now()); date_part —————– 1183904478.0009 (1 row) とくに使いでがあるのが、2つの日付の差を求めたりする場合ですね。 普通に差を求め
When I subtract timestamps, the interval is in form DD:HH:MM:SS. How can I convert it all to minutes without extracting days and hours and multiplication/addition? I'm looking for a single function which I can substitute for date_part in this query so that it returns 65: select date_part('minutes', '65 minutes'::interval); Context: I need to know how many minutes have passed since given timestamp.
search_pathのデフォルトは? hoge_db=# SHOW search_path; search_path -------------- $user,public (1 row) 作成したテーブルはデフォルトでどのスキーマに所属するのか? hoge_db=# CREATE TABLE hoge_table (id integer,data text); CREATE TABLE hoge_db=# \dp Access privileges for database "hoge_db" Schema | Name | Type | Access privileges ----------+------------+-------+------------------- postgres | hoge_table | table | (1 row)データベースを所有するユーザ名の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く