PostgreSQL

全1193件中1~20件表示
  • NULLを無視してgroup byは可能でしょうか

    PostgreSQLです。 cd、nm、data1、data2 11、AA、xxxx、null 11、AA、null、zzzz 上記のようなテーブルをcd、nmでグループ化し以下のように取得したいです。 11、AA、xxxx、zzzz

  • PostgreSQLのinitdbの利用の仕方

    PostgreSQLでカラム名の上限を拡張するため「pg_config_manual.h」の「NAMEDATALEN」を63→513に変更しました。 ただこれだけでは反映されず、ヘッダーファイル内のコメントに「initdbを実行しなければなりません。」といったコメントがあったので実行しようとしました。しかし、その使い方がよく分かりません。 新しいフォルダを指定して、実施するのは良いのですが、そうすると次からはそのディレクトリにデータベースが構築されていくのでしょうか? 実際に上記のカラム名の上限が拡張された新しいデータベースの作成方法と、そのデータベースの操作方法を教えていただきたいです。 ■実行環境 Windows10、 コマンドプロンプト使用、 Postgresql 15

  • データベース名postgresは使わない方がいい?

    データベース名postgresは使わない方がいい? PostgreSqlでデータベースを作成する際にデフォルトのデータベースやロールとしてpostgresが存在しますが、セキュリティの事を考えると、これは使用しない方が良いですか? postgres(データベース)とpostgres(ロール、ユーザー)でやって問題ないですか? database1(仮名)とrole1(仮名)でやった方がいいですか? もちろんpostgresユーザーのパスワードはしっかりしたものを設定します。

  • postgreSQL EUC-JPで運用 copy

    色々試してみましたがうまく行かず質問します。今までpostgreSQL9.6で標準のUTF8で使用していましたが今回postgreSQL12にして、データベースをEUC-JPで作成しました。postgresql.confの中のclient_encodeをSJISの定義もしました。 利用環境はtomcatでアプリを実行しており、その機能のひとつにpostgreSQLのファンクションを実行し、データをcsv出力しています(copy to)しかし、保存されたcsvはUTF8で出力されてしまいます。PSQLで直接copy toを実行するとSJISで出力されます。該当のファンクションで、copy toでencodingをsjis指定すると、tomcat経由でもsjisで出力されるのは確認しました。どこの設定でtomcatからのcopy toがデフォルトがUTF8になっているのでしょうか?データベースとの接続はJDBC接続でデータソースを使用しています。 どなたか教えていただけないでしょうか。宜しくお願いします。

  • 個人でデータベースを作成・無料公開する方法

    個人でデータベースを作成・無料公開する方法 個人的な趣味で調べている文献の情報が相当な量になったので、 個人でデータベースを作りたいと思っています(題名等の書誌情報と主題・キーワードを示す程度のものなので、著作権法には抵触しません)。 せっかくなのでオンラインで無料公開して誰でも閲覧・検索できるデータベースにしたいのですが、 どんなソフトやサービスを使えばいいのか全く方法がわかりません。ご存じの方がいらっしゃったら教えていただけないでしょうか。 プログラミングは全くわからないのですが、解説書があったりローコードであるならば勉強する意志はあります。 まずは無料ソフトなどで練習しようかとも思うのですが、それもどれを選んだらいいか困っています。 場合によってはプロに発注することも視野にはありますが、まずは簡易的なものを自分で作ってみて、自分が求める仕様を確認してみたいと思っています。 条件は ①個人使用可 ②web公開可(無料公開) ③なるべく低コスト 希望する仕様は、文献検索用なので A 著者、題名等の書誌情報を検索できる B 文献テーマやキーワードを複数登録・検索できる 程度の簡易なものです。 よろしくお願いします。(カテゴリが合っていなかったらすみません)

  • Left outer join とかのLeft

    Left outer join とright outer join ですが、解説などをみると、左右に表が描かれてあって、線を引いたりして結合していくのですが、 何をもって左とか右とかいうのでしょうか? テーブル1が左で、テーブル2が右みたいな感じで解説されるのですが、先に出てきた1も、あとに出てきた2も、単に出てきた順番であり、記号と思われます。1と2を入れ替えたら同じことです。Left outer join Table1 もRight outer join Table2 も同じことのように思われます。私はなにか勘違いしているのでしょうか?

  • GENERATE_SERIESで二次元を自動生成

    PostgreSQLのGENERATE_SERIESで二次元のテーブルを自動生成したいです。 期待する出力は、 x | y --+-- 1 | 1 2 | 1 3 | 1 1 | 2 2 | 2 3 | 2 1 | 3 2 | 3 3 | 3 1 | 4 2 | 4 3 | 4 です。 自分で思い付いたのは SELECT GENERATE_SERIES(1, 3) AS x, GENERATE_SERIES(1, 4) AS y; ですが、これはもちろん、 x | y --+-- 1 | 1 2 | 2 3 | 3 | 4 を返します…。 ループが必要なんでしょうか…。 例を検索しても見つかりません…。 ストアドプロシージャを使っても構いませんので、 どうかよろしくお願いします。

  • 測定結果が決められた範囲内か判定するSQL文

    決められた範囲内に測定結果が入っているかを判定するSQL文(またはストアドプロシージャ)を PostgreSQL 14.0を使って作ろうとしていますが、正しい結果が得られません。 具体的には、ケーブル・テーブルとスペック・テーブルで一致するテスト項目同士(例えば、'Test_1'同士)だけを比較したいのですが、他のテスト項目も引っ掛けてしまいます。 あと、下記のwhere test_item = 'Test_1', 'Test_2', 'Test_3'の部分を select test_item from cable; から一つ一つ取り出してループで回して代入し、最終的には id | test_item | test ----+-----------+------ 1 | Test_1 | 1.5 2 | Test_1 | 1.8 2 | Test_2 | 2.5 という、まとまった出力を得たいのですが、その方法を教えていただけないでしょうか? 自作のテーブルとSQL文は以下になります: create table cable( id integer default 0 not null ,test_item varchar(30) not null ,test numeric(3, 1) ,primary key (id, test_item) ); insert into cable values(1, 'Test_1', 1.5); insert into cable values(1, 'Test_2', 4.5); insert into cable values(1, 'Test_3', 2.5); insert into cable values(2, 'Test_1', 1.8); insert into cable values(2, 'Test_2', 2.5); insert into cable values(3, 'Test_3', 2.5); create table spec( test_item varchar(30) not null , lower_spec numeric(3, 1) , upper_spec numeric(3, 1) , primary key(test_item) ); insert into spec values('Test_1', 1.0, 2.0); insert into spec values('Test_2', 2.0, 3.0); insert into spec values('Test_3', 3.0, 4.0); postgres=# select * from cable c WHERE c.test_item = test_item and test < (select upper_spec from spec where test_item = 'Test_1') and test > (select lower_spec from spec where test_item = 'Test_1'); id | test_item | test ----+-----------+------ 1 | Test_1 | 1.5 2 | Test_1 | 1.8 (2 行) postgres=# select * from cable c WHERE c.test_item = test_item and test < (select upper_spec from spec where test_item = 'Test_2') and test > (select lower_spec from spec where test_item = 'Test_2'); id | test_item | test ----+-----------+------ 1 | Test_3 | 2.5 ←'Test_3'なので引っ掛けたくない 2 | Test_2 | 2.5 3 | Test_3 | 2.5 ←'Test_3'なので引っ掛けたくない (3 行) postgres=# select * from cable c WHERE c.test_item = test_item and test < (select upper_spec from spec where test_item = 'Test_3') and test > (select lower_spec from spec where test_item = 'Test_3'); id | test_item | test ----+-----------+------ (0 行) 必要であれば補足します。 では、よろしくお願いします。

  • 新規にデータベースを作成するものですか

    今回初めて、PostgreSQLを使ったシステム開発をする事となりました。先週から少し触り始めて多少わかってきたつもりですが、以下の点判断できず迷っています。アドバイスお願いしたいです。 デフォルトで存在する「postgres」データベースをそのまま使っていいものでしょうか?それとも、別データベースを作成したほうが良いものなのでしょうか。 デフォルトで存在するDBはサンドボックス的な意味合いで、実際には別途作成すべきものなのではないかと勝手に予想し、新規にユーザ作成した後、新規DBの作成が良いのではとも思っていたのですが、同僚から、「なんでデフォルトのものではだめなの?」と問われ返答に困ってしまいました。みなさんご意見お聞かせください。

  • PostgreSQLでログインIDとパスワードでロ

    PostgreSQLでログインIDとパスワードでログインするにはどうしたらいいですか?

  • PostgreSQLのパスワードが分からない場合、

    PostgreSQLのパスワードが分からない場合、どうしたらいいでしょうか?

  • PostgreSQLでDBから接続をやめるにはどう

    PostgreSQLでDBから接続をやめるにはどうしたらいいですか?

  • rootのsuって何のことですか?

    rootのsuって何のことですか?

  • SQLのスキーマって何ですか?

    SQLのスキーマって何ですか?

  • CentOS7,PosgrSQL9.2で -bas

    CentOS7,PosgrSQL9.2で -bash-4.2$ su - postgres パスワード: su: 認証失敗 となってしまいました。 どうしたらいいですか?

  • ポスグレで

    ポスグレで postgresql-setup initdb とデータベース初期化すると Data directory is not empty! とエラーメッセージが表示されます。なぜでしょうか?

  • UNIXでPostgreSQLを起動したり、テーブ

    UNIXでPostgreSQLを起動したり、テーブル作ったりするにはどうしたらいいですか?

  • windows版とlinux版とのパフォーマンス差

    両環境共に同じテーブル、データの内容も同じ状態下で単純なデータのコピーを行ったところlinux版が処理時間に2~3倍程度早い結果となり、ここまでパフォーマンスに差が出るものなのかと疑わしくおもっています。実際にここまでパフォーマンスに差が出るものなのでしょうか。 コピー処理は以下の感じです。 insert into hoge_tbl1_bk select * fom hoge_tbl1; またPostgreSQLのパラメータは以下urlを参照し作成しました。 https://pgtune.leopard.in.ua/#/ 以下環境となります。 両サーバーともにESXi上に作成しています。 Linux側  CentOS7.9  cpu 1core  mem 2gb  PostgreSQL13 Windows側  WindowsServer2012  cpu 4core  mem 8gb  PostgreSQL13 ご存じの方おられましたらご教示ください。

  • PostgreSQL 接続プール数について

    vb.netよりPostgreSQLに接続すると以下のエラーが表示されました。 【エラー】 The connection pool has been exhausted, either raise MaxPoolSize(100) or Timeout(currently 15 seconds) 接続ユーザ数は、3ユーザぐらいなのですが、なぜこのようなエラーが出るのでしょうか? どなたかお詳しい方がいらっしゃいましたら、ご教授頂ければ、助かります。 宜しくお願い致します。

  • PostgreSQLの列分割(水平分割)について

    PostgreSQLで次のテーブルを作るとして create table test1(id int , name text , pass text , img bytea , dates date); このテーブルをパーティショニングしたいと思っています。 水平分割(dates列の値によって行をパーティショニング)についてのSQL文は、公式ドキュメントに例示されていたため理解したのですが、 垂直分割(列自体を分割)する設計のテーブルを作成する場合について調べているのですが、見つけることができませんでした。 id,name,pass,dateのテーブルと、id,imgのテーブルにパーティショニングするSQL文についてご教授願えないでしょうか

    • 締切済み
    • noname#258842
    • PostgreSQL
    • 回答数1