postgreSQLのテーブルにidカラムとか付けてない時に、途中からシーケンスを足す方法。
この例ではidカラムのなかったlogテーブルに529から採番。
まずはidカラムを追加。
それからシーケンスを作成。
そしてテーブルにシーケンスを付加。
ALTER TABLE log ADD COLUMN id integer;
CREAT
\d テーブル名
PostgreSQLで正規表現でレコードを抽出するには
SELECT * FROM item WHERE name ~ '^[0-9a-zA-Z]+$';
例はitemテーブルのnameフィールドで英数半角文字のみのレコードを抽出するサンプルです。
チルダー(~)だけなので簡単ですね。
to_char(timezone('JST',current_timestamp),'YY/MM/DD')
JSTに変換されて2021/08/08の場合は21/08/08に変換されて表示される。
西暦表示したい場合はYY部分をyyyyに変更。
現在の日付の時刻部分を抜き出す
to_char(current_timestamp, 'HH12:MI:SS')
現在の日付時刻の日付のみを抜き出す
to_char(current_timestamp, ''yyyy/mm/dd")
現在の日付時刻から日付のみを
postgresqlのアップデート時にja_JP.UTF-8が使えなくなったみたい?
以下のコマンドでubuntu18で解決した。
localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
その後postgresqlを再起動
postgresql10で「createdb: database creation failed: ERROR: invalid locale name: "ja_JP.UTF8"」エラーが出る
原因は、システムにja_JPロケールがインストールされていない。
rootで
localede
【apache2.4】
https://www.apachelounge.com/からバイナリをダウンロードしてインストール。
この記事の時点ではhttpd-2.4.41-win64-VS16.zip(64ビット版)。
解凍してできたApache24フォルダをC:\に移動。
そのApache24フォルダのbinにコマンドプロンプト(管理者権限?)
【Apache】
http://www.apachelounge.comからバイナリをダウンロードしてインストール。
この記事の時点ではhttpd-2.4.25-win64-VC14.zip(64ビット版)。
解凍してできたApache24フォルダをC:\に移動。
コマンドプロンプトでそのApache24フォルダのbinに移動し
httpd -
複合ユニーク制約の付与
ALTER TABLE テーブル名 ADD CONSTRAINT 制約名称 UNIQUE(カラム1,カラム2,...);
複合ユニーク制約の解除
ALTER TABLE テーブル名 DROP CONSTRAINT 制約名称;
PostgreSQLではデータベースごとのバックアップ、レストアも可能だが、複数のデータベースまるごとの復元も可能。
新規インストールしたpostgresのデータフォルダ(CentOSの場合/var/lib/pgsql/data)を削除して復元もとのdataをコピーする。
そしてpostgreSQLを起動するとログにいろいろとヒントが表示されるの
例えば間違えてレコードを削除してしまった場合、削除レコードはしばらく表面上消されただけの状態なので復元可能。
ただし、大量のデータ処理をした後など、autovacuumが働いてしまったあとなどは無理かも。
pg_controldata /var/lib/pgsql/dataで現在の状態を表示。
/var/lib/pgsql/dataはCentO
http://www.apachelounge.comからバイナリをダウンロードしてインストール。
この記事の時点ではhttpd-2.4.18-win64-VC14.zip(64ビット版)。
解凍してできたApache24フォルダをC:\に移動。
そのApache24フォルダのbinに移動しコマンドプロンプトで
httpd -k install
上
integer型をserialのような自動増加型にする例はネットには多いが、逆にserialをintegerに変える方法はあまり載ってないのでメモ。
(serialは特殊な型なので、型の変更でserialそのものに変換するのは無理らしい?)
デフォルト値を削除するとserial型がintegerになった。
ALTER TABLE table_n
pg_hba.confなどを書き換えて設定値を読み込ませる場合
pg_ctl reload
「pg_ctl: データベースの指定も、PGDATA環境変数の設定もありません」と怒られる場合
pg_ctl -D /var/lib/pgsql/data reload
(標準のインストール位置の場合)
psql データベース名 < ファイル名
ユーザー名指定あり
psql -U ユーザ名 データベース名 < ファイル名
■年の演算(年加算、年減算)
・年の演算を行う
select current_timestamp + '1 years';
select current_timestamp + '-1 years';
■月の演算(月加算、月減算)
・月の演算を行う
PostgreSQLで全角から半角へ変換する関数を応用して、本来半角のはずの品番などに入力ミスで全角が混入しているものを抽出するサンプル
SELECT * FROM item WHERE hinban != translate(hinban,'-0123456789ABCDEFGHI
ポストグレスSQLで改行コードをHTMLのBRに一括変換のサンプル
UPDATE テーブル名 SET honbun=replace(honbun,'\r','<br />')
試してないけど正規表現でも置換できるらしい
【Apache2.2(httpd)のインストール】
yum install httpd
SSLを有効にする場合は
yum install mod_ssl
も。
/etc/httpd/conf/httpd.confの編集
AddType application/x-httpd-php .php を追加
もし、.htm .htmlのファイル中でもPHPを使
サブクエリ(副クエリ)とLEFT JOIN(レフト ジョイン)のSQLサンプル
SELECT table1.*, count.count FROM table1 LEFT JOIN
(SELECT table1_id, count(table1_id) FROM table2 WHERE 条件 GROUP BY table2.table1_id) as
LEFT JOINを2回行うサンプル
SELECT order.id, item.name FROM ((order LEFT JOIN size ON order.item_id=size.item_id AND order.size_id=size.id) LEFT JOIN item ON order.item_id = item.id)