広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2018年07月19日

全角スペースを無視して検索する

氏名データは、姓と名の間に全角スペースが入っている。

 例:山田 太郎

like '山田%'で検索できるのだが、

顧客は「山田二郎さんもいるので、山田太郎で検索したい」という。

データに全角スペースが含まれているので、

like '山田太郎%' でも = '山田太郎' でも検索できない。


仕方ないので、検索値に全角スペースが含まれているかどうかを判断し、

全角スペースが含まれている場合は

select * from tableName where name like '山田 太郎%';

含まれていない場合は

select * from tableName where replace(name,' ','') like '山田太郎%';

とした。

注)
name : 氏名データが登録されているカラム名




posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2018年02月16日

Postgresのバージョン


psql --version


Mysqlを使用することの方が多い。
Postgresを使う機会は貴重だ。




posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2018年02月15日

Call to undefined method DB_Error::prepare()


Call to undefined method DB_Error::prepare() ....


DBはPostgresで、PEARで接続しています。

PEARのインストールを疑い、

DB接続用のライブラリを再インストールしても結果は変わらず。


このページの回答を読んで気付きました。


https://ohttps://okwave.jp/qa/q2338790.html

"connectで、ちゃんとデータベース接続はできていますか?"


データベース名を間違えていました。



posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2017年10月14日

phpPgAdminのインストール

Cent OS 7、PHP 5.4.16 にphpPgAdmin 5.1をインストール、Postgresは9.2.18。

?@conf/config.inc.php を自環境に応じて編集する。
 $conf['servers'][0]['host'] = 'localhost';

 confディレクトリはphpPgAdminをインストールしたディレクトリにあります。

?Aてっとり早くログインするために postgres や root でログインできるようにする。
 $conf[‘extra_login_security’] = false;

?B postgresのパスワードを指定したが、省略しても大丈夫かもしれない。←大丈夫
 alter user postgres with password 'パスワード';

?C /var/lib/pgsql/data/pg_hba.conf を編集
 pearとIPv4のidentをtrustに変更した。IPv6のidentは放置した。


# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
#local all all pear
local all all trust
# IPv4 local connections:
# host all all 127.0.0.1/32 ident
host all all 127.0.0.1 1/32 trust
# IPv6 local connections:
host all all ::1/128 ident


?DPostgresを一旦停止し、再起動する。
?Eログインしてみる。
 ログインできた。

?FPostgresのアカウント追加
 create role ユーザ名 with createdb password 'パスワード';
 alter role ユーザ名 with login; を実行した。

?Gセキュリティ強化のため postgres でのログイン禁止
 $conf[‘extra_login_security’] = true;

?Hセキュリティ強化のため Trustを禁止する
  /var/lib/pgsql/data/pg_hba.conf を編集


# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
#local all all pear
local all all md5
# IPv4 local connections:
# host all all 127.0.0.1/32 ident
host all all 127.0.0.1 1/32 md5
# IPv6 local connections:
host all all ::1/128 ident


?IPostgresを一旦停止し、再起動する。
?Jログインできることを確認する

注)
上記の操作で私の環境ではphpPgAdminの設定を完了できました。
しかし、他環境での動作を保証するものではありません。
あくまでも参考としてご覧ください。




posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2017年10月10日

Postgresのoidオプション

古いバージョンのPostgresはテーブルを作成するとoidsという項目が自動的に追加されていた。

連続した整数が登録されており、データの識別に利用していた。

いつの頃からかoidsはオプション指定しないと作成されなくなったと思っていたが、

昔のブログにこんな記事を書いていた。


Postgresを7.4.26から8.1.18にバージョンアップしました。


default_with_oidsのデフォルトがfalseになりました。


このオプションをfalseに設定した場合、CREATE TABLEでWITH OIDSを指定しない限り、ユーザが作成したテーブルはOID列を持たなくなります。


コマンド例
create table virus_rireki(
  reg_id integer,
  att_name varchar(40),
  oldvalue text,
  newvalue text,
  username varchar(20)
) WITH OIDS;




このオプション、今も残っているのかと思いググッてみると、

Postgres 9.6について記載されたページに下記の趣旨の記述があった。

オブジェクト識別子(OID)はPostgreSQLの内部で様々なシステムテーブルのプライマリキーとして使用されます。

健在だ。



続報

posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: